Python2.5のリリース予定。 alpha 1 2006年4月5日 済 alpha 2 2006年4月27日 済 beta 1 2006年6月20日 済 beta 2 2006年7月11日 済 beta 3 2006年8月3日 ←今ここ rc 1 2006年8月18日 予定 final 2006年9月12日 予定 release 2006年?月??日 予定
このスレは3ヶ月持つ。
おっ、Pythonスレだ。
オフ会から生還しますた!!
差し支えない範囲でレポよろ
なんつーかメアドの向こうに人間がいるっつー当たり前のことを再認識した。 俺もがんばろーとオモタ。
>>8 含蓄のある書き込みだな。
これからもよろしく。
2chにソース貼る時にズレやすいので、 クリップボード内の半角スペースを に置換するwindows用スクリプトを 書ける人お願いします。 win32allの解説を読んだりしたんですが全然わかりませんでした。
変換してから貼り付けじゃダメなん? そのほうが楽だし。
>>11 cygwin いれて sedつかえばいいじゃん。
私はEmacsで書いて、replace-stringをかけてる。
私はviで(ry
細かすぎるなぁ。無理やり10段階にしたって感じ。 5段階くらいでいいんじゃね?
べつにどうでもいいじゃん、 言語オタ向け?
>>11 # -*- coding: sjis -*-
from Tkinter import *
import os, sys, re; re_leading_spaces = re.compile(" [ ]+")
def to_nbsp(match):
return " " * len(match.group())
def translate():
try:
src = root.selection_get(selection="CLIPBOARD")
except TclError, e:
return # simply igonre the error
text, n = re_leading_spaces.subn(to_nbsp, src)
root.clipboard_clear()
root.clipboard_append(text)
root = Tk(className=os.path.basename(sys.argv[0]))
Button(root, text=u"スペース→ 変換", command=translate, font="System").pack(side=LEFT)
Button(root, text=u"終了", font="System", command=root.quit).pack(side=RIGHT)
root.mainloop()
あ、ボタンの一部が消えてるw
正しくは「スペース→ 変換」です。
そーか、& をエスケープしないといけないのだな。
じゃあこれは
>>11 への課題ってことで。
レベル-1 :
Pythonを知らない。
レベル0 :
スクリプティング言語だということは知っている。Perlよりいい、オブジェク
ト指向、科学計算に強いなどの長所を聞いて興味を持つが、導入には至らない。
yumなどのアプリケーションで間接的に利用しているが、それは知らない。
レベル1 :
インストールした(またはインストールされていた)。少し使ってみる。イン
デントが意味を持つことを知って戸惑う。
インスタント・パイソンを通読、実行してみるが、ありがたみは分からない。
http://www.python.jp/Zope/intro/instant_python_jp タプルの存在する意義が分からない。
…
レベル10 : Guido本人。
>>21 何気にPerlより優れてるということを織り込まずにいられないところが、ユーザの性なんでしょうか。
俺レベル1以上2未満だわ。てか、10がそれだから-1と0増やして丁度いいのねw
24 :
デフォルトの名無しさん :2006/08/11(金) 16:26:51
レベル2 : チュートリアルとライブラリリファレンスを拾い読みして、雑用スクリプトは、 大体Pythonで書けるようになる。書き捨てのコードもあとで読みやすいことに 満足。しかし日本語の資料やblogの少なさに愕然。Rubyにしとけば良かったか と少し後悔。 インデントに慣れる。と言うか、常用エディタのPythonモードに慣れる。 組み込みオブジェクトは大体使えるようになる。不変オブジェクトは安全で良 いなあ、タプルもあって良いかな、と思う。 スライスは便利だと思うが、まだ慣れない。
はじパイだけで、PerlでいうところのLv7.5か。 あと2ステップで、Guidoになれるw
レベル3 :
『初めてのPython第2版』を通読。
http://www.amazon.co.jp/gp/product/4873112109 言語仕様が思ったより単純ではないことを知る。クラスを書くようになるが、
selfが嫌だ、privateが結局無いことはどうなのよ、とか思っている。新形式
のクラスは使わない。
関数の引数にさまざまな形式を用いるようになる。アンパック代入、関数の戻
り値などにタプルを多用する。リスト内包表記を使うようになる。イテレータ
やジェネレータはまだ良く分からない。
import文の無いコードはまず書かなくなる。必要に迫られてDB接続やnumpy,
scipy、matplotlib などを導入。導入の容易さと使いやすさ、高機能に大満足。
MATLABよさようなら。しかし日本語のドキュメントはほぼ皆無。諦めて英語を
読むようになる。
複合キーのDBの戻り値をdictに納めようとして、タプルをキーにすればよいこ
とに気づく。タプルのありがたみを思い知る。
自分史はチラシの裏に
初めてのPythonを通読する奴なんかそんなにいる? チュートリアルに目を通した後はライブラリリファレンスと 標準ライブラリのソースを参考に試行錯誤するというのが普通だろ?
>>26 最後の段落は要らないな。個人的過ぎ。
レベル4 :
C(++)で拡張を書き始める。イテレータ、ジェネレータを自分で書くようになる。
デコレータやジェネレータ式を使いたいが、インストールされたPythonのバージョンに
よって動かないことの方がが多いので諦める。
Pythonは今後、あまり構文は変わらないが、データの基本形式がシーケンスから
イテレータに移行しつつあることに気づき、今後の互換性が気になる。Python3000の
議論を追いかけるようになる。海外のMLを読むようになる。
ライブラリのソースを読んでまわる。
あとはどんなもんだろう。
そのペースでlv.10まで続くかな。
>>29 4:に
今後の互換性を考えて、新形式のクラスしか使わない。
を加えてほしいが、過去互換性のために新形式のクラスを使わない人もいるん
だろうなあ。
プログラマならもっと計画的に考えろよ。 0から次々順番に考えるんじゃなくて、最初から0〜10のレベルの内容を考えて割りふれ。
>>32 その作業はレベル10の人でないと難しいな
なんだ、賑やかだと思ったら みんなで夏休みの計画作ってるのか
>>32 すまん、自分自身がレベル4なんで、そこから先は想像しか出来んのだ。
一応、こんな感じに考えたりして。
5: Pythonで食える。雑用コードではなくPythonをメインのコードとして使っ
ている。
6: 日本でPythonを普及させるためにエヴァンジェリストを買って出る。
or
Python生活の基盤を海外コミュニティに完全移行。日本でPythonが盛り上がら
ないのはもう気にならない。
7: Pythonで小さなOSSプロジェクトを始める。Guidoとオンラインで知り合いに
なる。
8: Pythonの著名な拡張モジュールの開発に参加。Guidoとオフラインで知り
合いになる。
9. Pythonの主要開発メンバに。Googleに就職。
我ながら厨房臭くてかなわん。誰かもっとマシな項目にしてくれるのを希望。
個人的に一番知りたいのは lv.5 だな(笑)。 このスレにそれを達成した人は何割いるんだろうか。
まるで難易度曲線が揃ってなくて面白い。PerlがB型だとするならPythonがO型だな。 何の話かというと、ワルキューレの冒険におけるレベルアップに例えてだが。
>>35 Lv.8くらいにいってもPythonで食えるかどうか・・
39 :
デフォルトの名無しさん :2006/08/11(金) 18:10:52
どうでもいいから夏休みの宿題やれよ
5: と 7:の前半は入れ替えるべきじゃないだろうか。 5: Pythonで小さなOSSプロジェクトを始める。 … 7: Pythonで食える。雑用コードではなくPythonをメインのコードとして使っ ている。 Guidoとオンラインで知り合いになる。
レベル7: まで行かないと食えないのね(笑)。 Perlだったらレベル3: で食えるぞ。いや、2か?
ひとに認められるためにPythonやるわけじゃないしなぁ…
David Mertz 変態 David Mertz 変態 David Mertz 変態 David Mertz 変態 好き
47 :
デフォルトの名無しさん :2006/08/11(金) 19:11:17
zopeやDjango方面が全然載ってないので、どなたか追加を希望。
>>47 そっちはPythonのスキルとは独立した話だろ
誰かレベル5以上の人、技術スキルの話を追加してよ。
50 :
デフォルトの名無しさん :2006/08/11(金) 20:32:28
ルバーですが、興味を持ちます田。
Java厨ですが初めてのPython通読しました。 いきなりレベル3でいいのですか? Python面白いね、 ちょっと思いついた事をすぐにプログラムにできるところがいい。
Pythonは楽でいいよね。 個人的には、通読だけなら2.5ってところかと思う。 いろんな外部ライブラリを導入するようになったら3なのかな。
今の定義だとみんな4になっちゃわないか? レベル5 をこんな感じにしたらいいんじゃないかと思う。 以下の条件のどれかが当てはまる人 ・Pythonで1000行以上のコードを日常的に書いたり、扱ったりしている。 ・Python-ml-jp の常連回答者である。 ・小さなOSSプロジェクトをPythonで始めている。 この定義でも自分は4なわけだが。
55 :
デフォルトの名無しさん :2006/08/11(金) 23:06:58
>>51 タプルの存在する意義が分からない。
というのはあたってます。
恥パイも買います田。どうなることやら
つーかハスケルはタプルとリストの違いがはっきりしてて、 タプルが確かに必要って言うのが誰にでも分かるけど、 pythonの場合、使いづらいリストという感じしかしない。 ので俺もレベル1、(多分ずっとw
>>56 伝わりにくい質問だなあ。
このスレではみんながHaskellを知ってるわけじゃないしね。
だけど言ってることは正しいと思う。Pythonはタプルもリストも自由度高杉。
タプルがシーケンスの一種になってるから、違いが分かりにくい。
Pythonでも、コーディング規約として、Haskellのように
・タプルは使い捨ての構造体として扱う
・リストには型の同じ要素だけを納めるようにする
こう扱うのがいいんじゃないかな。
どうでもいいんだけど、 PyPlaggerをやろうと思って、Plaggerのソース見たらげんなりしたんで、口直しにDjangoのソース見てる。 たぶん、Perlは一生解らない。
59 :
57 :2006/08/12(土) 01:23:23
あ、別に質問じゃあないか。失礼。 だけどやっぱりタプルはありがたいよ。Pythonは不変オブジェクトで安全に組 むのが基本だから、要素集合の不変の組み合わせは、不変が保証されるように コーディングしたいもの。リストや辞書しかないなら、不変性が保証されない。 例えば、こんな例はどうだろうか。要素集合をキーにすると、簡単に複数キー に対応する辞書が作れて便利。だけどPythonではタプルは辞書のキーになれる が、リストはなれない。リストをキーにできる言語だと、たまにこんなことに なる。 irb(main):001:0> a = [0, 1] => [0, 1] irb(main):002:0> d = {} => {} irb(main):003:0> d[a] = "hoge" => "hoge" irb(main):004:0> a.push(2) => [0, 1, 2] irb(main):005:0> d[a] => nil
Schemerはレベル高い
Rubyのはなしは もうあきた。
もう、Ruby禁止で。
要するに、Pythonのタプルは不変リストだよ。 それでいいんじゃないか? 構造体としてだけ扱うというのも、個人の自由だからそれもいいけど。
Nokia S60でpython scriptを動かすには、どうすればいいですか?
pythonチャレンジやってたらいきなり繋がらなくなった・・・鯖落ちか・・・?
つーか、タプルとかリストをキーにする意味って何? その技法にまったく必要性を感じない。 59の例は別にそれでかまわないと思う。 59の例が問題だと感じる奴の方がおかしい
問題になる場面は容易に想像つくけどな。
むしろ辞書のキーをstr以外のシーケンス型にしてる時点で「ぱっと見て下手なコード」
>>66 例えば科学技術計算では解きたい連立一次方程式の係数行列が
大規模(100万元とか)かつ疎な(要素の大半が0)行列になることがしばしばある。
しかも非零要素が現れる位置が不規則で、反復毎に非零要素数が変わったりする。
こういう問題の係数行列を作る場合、行列を辞書で表すと具合がいい。
i行j列に要素 v を追加するには A[(i, j)] = v というようにタプルをキーにするわけだ。
値を次々に足し込むには A[(i, j)] = A.get((i, j), 0.0) + v のように書けばいい。
辞書は要素の追加と参照が効率的なので疎行列を表すのにうってつけのデータ構造だと言える。
ちなみに次数が大きいので
A = [[0.0 for j in range(1000000)] for i in range(1000000)]
みたいな二次元配列は事実上使えない(理由は試すまでもなく分かるよねw)
一次元のリストだと要素の追加と参照が非効率的なのでNG。
要素を追加し終わったら線形ソルバに投げるためのデータ構造に変換するわけだけど
リストだと行や列でソートする必要が生じる。
結論:辞書+タプルたん最高。
>>66 69のような用途じゃなくても、2次元配列と同じ感覚で、複合キーをつかった辞書というのはよく使うけどな。
複合キーをjoin()で結合させて単一キーにしてもいいけど、複合キーがそのまま使えるならそれにこしたことはない。
実はこのスレでも、タプルのありがたみを実感していない人がけっこういたと いうことで良いだろうか。
>>69 なるほどねぇ・・・
しかし、大規模かつ疎で非零要素が現れる位置が不規則な行列
計算をしなきゃならん状況は一般人は出会わないだろうね。
しかもその場合でも、絶対なきゃいけないわけじゃなくて、
あると多少効率がよく、多少気分がいい程度だし・・・
まあ、でもそんな状況にまで配慮してる(のか?)Guidoタンはなかなかやるね・・
そういう場合は、自分でクラスと定義するか Numerical Pythonに定義してあるクラスをつかえばいいんでない。。
何で最も簡単でシンプルな方法を否定するんだよ
ちょっと見ない間にスレが繁盛してるな。
>>11 お勉強wikiに空白変換用のフォームができてたよ。
いまさらかな…。
>>74 そんなことないよ
オマエの経験が浅いだけ
>>79 タプルを辞書のキーにするというのはよくやるけど
frozensetは知らなかった。サンキュ
>>80 また出たな、否定だけして、内容を何も言わないヤシ
しかもどこを否定してるのかも不明
複数要素をキーにした辞書なんて普通に使うだろ
言い方はともかく
>>80 の論旨は正しい
またRuby厨か! おまえがタプルを理解できないのは仕方ないよ 自分には無理なんだとあきらめて さっさと宿題しなさい!
今流行の仮想的有能感か
なんで突然Rubyが出てきたの?
俺には
>>84 が、PythonistaでもRubyistでもない、ただの荒らしにしか
見えない。まともなPythonisaならRubyに過剰反応したりしない。
火をつけてそれを拡大したい人なのだろう。お引き取り願いたい。
煽る人 スルーできない人 両方退場で。
そして誰もいなくなった
実は3人くらいしかない予感。
>>86 50 -> 55
ルバーってのはRubyユーザってことじゃない?つか、
>というのはあたってます。
>(略)。どうなることやら
って口調、Ruby開発者の口調にそっくり。まさか本人?
ばれましたか
>>92 ……。
…ちょっと参考のために教えていただきたいんだけど、あなたの
Pythonプログラマレベルはいくつ?
あと、タプルについて少し語ってくださらない?
いやね、疑ったりするわけじゃないけど、最近は物騒でしょ?Pythonと
ぜんぜん関係ない人が迷惑なことしたりすることもあったりするそうだから、
念のためにね。
物騒だとおもっている人は こんなIDも表示されないような所にきちゃだめ。
タップル!! タップル!! タップル!! タップル!! タップル!! タップル!! ∩ ∩ ノ) タップル!! タップル!! 川 ∩ 川彡'三つ タップル!! タップル!! ⊂ミ∩、⊂ミ∩彡⊃ タップル!! タップル!!⊂三ミ( ゚∀゚)彡三彡三⊃ タップル!! タップル!! ⊂彡川⊂彡川ミ⊃ タップル!! タップル!!⊂彡川∪⊃ U川彡⊃ タップル!! タップル!! (ノ ∪ 川 ∪ミ) タップル!! タップル!! ∪ タップル!! タップル!! タップル!! タップル!! タップル!! タップル!! タップル!!
結論 「タップル!」と唱えて「ギクッ!」としたら そいつはRuby厨ということでいいてつか?
74ですが、
よく考えたけど、タプルキーのdictは全然Py然としていない。
>>69 の例なんかは既に相当込み入った事をしようとしてるので、
それ用のクラスを立てて、その中で処理すべき。
dictのマニアックな使い方で処理すべき状況ではない。
>>71 のような気軽な使い方は、arrayのレンジ外に代入しようとしたら
エラーが起こるというpythonの特徴に、180度逆行する行為。
便利な用法と言うよりは、むしろタプルの悪用。
連想配列っていうのがそもそも、文字列で値呼び出せたら便利だね
っていう所から始まってる(awkを見よ)ので、それ以上の事をする
のはそれなりの理由が無いかぎり、可読性が下がる。つまりpythonicでない。
結論:辞書のキーにタプル使うぐらいなら、分かりやすいクラスを作るのがpythonic
それは連想配列とリストの制約の方ばっかりを見て、自分の望む結論へ誘導しているようにしか見えない。
データベースで複合のプライマリーキーを持つ テーブルを操作するとき便利だよ。
最近のRuby厨はPythonicなんて言葉を知ってるのか。
>連想配列っていうのがそもそも、文字列で値呼び出せたら便利だね >っていう所から始まってる(awkを見よ)ので、それ以上の事をする >のはそれなりの理由が無いかぎり、可読性が下がる。つまりpythonicでない。 この辺がかなり身勝手。
連想配列のキーは文字列が起源ニダ
>>98 そんなにきちんきちん作り込むならJavaでも使ったほうがマシ
ある程度ad-hocに作れるのがライトウェイト言語の利点だ
それに連想配列は文字列から始まったわけではない
結論とか偉そうに書いている割に知識が生半可すぎるよ
まあ、Pythonを使っているだけで
プログラミングが上達するわけじゃないし
Pythonでも可読性が良い、悪いは生まれるわけだし。
Python的じゃない!とまでは言いすぎでは。
「まあ、そういう使いかたする人もいるよね。」
くらいに思っておけばいいんじゃないか。。
ま、そんなことは、どうでもいいんだが
>>98 のメールアドレスをみて好感度アップ
乙
>>98 >>> d = {}
>>> d.get((1,2), 'Spam')
'Spam'
>>> d[1,2] = 'Spam'
>>> d.setdefault((1, 2) ,'Egg')
'Spam'
>>> d.setdefault((1, 3) ,'Egg')
'Egg'
>>98 Pythonらしいとかはお前が決めることじゃねーよ。
>
>>71 のような気軽な使い方は、arrayのレンジ外に代入しようとしたら
>エラーが起こるというpythonの特徴に、180度逆行する行為。
180逆行すると本当に開発者が思ったのなら、
ディクショナリに文字列以外のキー入れたらエラーが起こるようにするだろ。
結論:タプルが理解出来ない、したくない馬鹿が、
自分の論理をムリヤリ通すためにPythonicという言葉を持ち出す奴はPythonicでは無い。
せいぜいPanasonicだな。
夏休みなんだから みんな外で遊べよ
なかよくしようぜ。 >>> d={} >>> d[1,2]=2 >>> d[(1,1)]=1 >>> print d {(1, 1): 1, (1, 2): 2}
少し旧いところにツッコむと >57 >・リストには型の同じ要素だけを納めるようにする これはあり得ないだろ。 何かのエラー防止にそういう型が欲しいという要望はあり得なくはないが "ナンデモリスト" の便利さはこのスレの人間なら誰もが 感じたことあるだろ。
ここまでのあらすじ: 最初は全く活用例を思いつかず、「一体何に使うのか」と書き込んだら、 思いもよらぬ活用例が出てきて、つい、「そんなのは普通クラスにする」と 言ってしまったがために、いつまでも自己正当化している人がいるスレ。
ヒント 便利さ > 美しさ
タプルの使い道を考えてみた userinfo_list[(username,password)] = "敗北者" …… user = (username, password) if user in userinfo_list: print "ようこそ"+userinfo_list[user] else: print "かえれ"
>>94 > …ちょっと参考のために教えていただきたいんだけど、あなたの
> Pythonプログラマレベルはいくつ?
お前のレベルはいくつなんだ?と聞いたら、自慢話が止まらなそうな奴だな。
frozensetとかしらなくて x = frozenset(['a', 'b', 'c']) y = frozenset(['a', 'c', 'd']) print x & y print x | y print x ^ y とやってみて便利〜♪と思ったけどここで疑問が。 タプルもリストもいらないw 知らない間にlistがfrozensetに置き換わっていそうな予感。
「XXXにも、そう書いてありますね」で納得するようなやつは RubyでRailに乗ってればいい。
>>98 はawk->Perl->Pythonという変遷をたどってきた。間違いない。
124 :
デフォルトの名無しさん :2006/08/12(土) 17:11:03
Pythonicとかいう言葉を使うなら どういうものがPythonicなのか 合意が取れてからにしような
125 :
120 :2006/08/12(土) 17:15:27
あーやっぱりlistはいるかも。 マニュアルの表しか見てなかったからてっきりadd()があるのかとおもた。
>>123 なんでも文字列派だよなw
こういう奴にWeb作らせるとSQL Injectionとか簡単にされちゃいそうだ
>122 同意。けど、ちょっと流行しそうなフレーズ。
>>125 addできたらfrozenじゃねーしw
会話が理解できない俺レベル-∞
69です。むし返すようで恐縮だけど
>>76 さんと
>>98 さんに質問。
>>76 > そういう場合は、自分でクラスと定義するか
> Numerical Pythonに定義してあるクラスをつかえばいいんでない。。
>>98 >
>>69 の例なんかは既に相当込み入った事をしようとしてるので、
> それ用のクラスを立てて、その中で処理すべき。
> dictのマニアックな使い方で処理すべき状況ではない。
辞書以外のPythonの基本データ型で、整数値の組 (i, j) と実数値 v を
関連付けて保存・参照する効率のいい方法があったら教えて。
俺の知る限り、辞書以外に無い。
つまり、定義したクラスの中でやっぱり辞書を使うことになると思うんだよね。
辞書にまさる方法がなければ「クラスを定義」云々はナンセンス。
131みたいのは、Pythonにはスタティックな配列がない という事実が認識できていないのでは?
タプルの存在価値がいまいちわからなかったけど 書き換え不可=ハッシュ化可能=辞書のキーに利用可能 てことか〜♪ ここでまたまた疑問が。 なぜfrozendictがないのか。 中の人はもっとよく考えてから実装しるw
>>120 =125=135
お前はもうちょっと考えてからレスしろ。
お前の言ってることは全体的に意味不明なんだよ。
>タプルもリストもいらないw
>知らない間にlistがfrozensetに置き換わっていそうな予感。
>あーやっぱりlistはいるかも。
>マニュアルの表しか見てなかったからてっきりadd()があるのかとおもた。
add()があってもlistをfrozensetに置き換えられる場面なんかすくねーよ
>>137 120,125については同意
135に書かれたfrozoendictに相当するものはあっても良い気がする。
何に使うのかと言われてすぐに思い付かないが。
PythonWay 1. Beautiful is better than ugly. 2. Explicit is better than implicit. 3. Simple is better than complex. 4. Complex is better than complicated. 5. Flat is better than nested. 6. Sparse is better than dense. 7. Readability counts. 8. Special cases aren’t special enough to break the rules. 9. Although practicality beats purity. 10. Errors should never pass silently. 11. Unless explicitly silenced. 12. In the face of ambiguity, refuse the temptation to guess. 13. There should be one? and preferably only one ?obvious way to do it. 14. Although that way may not be obvious at first unless you’re Dutch. 15. Now is better than never. 16. Although never is often better than *right* now. 17. If the implementation is hard to explain, it’s a bad idea. 18. If the implementation is easy to explain, it may be a good idea. 19. Namespaces are one honking great idea ? let’s do more of those!
自分には価値のないものが他人にとってもそうであるとは限らない。 ――デフォルトの名無しさん
69ですが・・・ > 6. Sparse is better than dense. ワロタガナ
PEP351
良スレの予感
更なる疑問が湧いてきて試してみたら辞書のキーって結構何でも使えるんですね。 なんとなく使っちゃいけない黒魔術っぽい雰囲気なので普段は使いませんがw class MyClass: def read(self): return 'OK' d = {MyClass(): None, file(__file__): None} for k in d: d[k] = k.read() print d
けっきょく、アドレスをキーにしてんのかな。
__eq__ で判定してんだろ。
__hash__() なのだが……
構造文書操作のお奨めモジュールあるかな?
__hash__と__eq__両方使われるに決まってんだろ
ハッシュテーブルというものが どういう仕組みのものなのか理解していない人たちが 集まるスレはここですか?
>>145 クラスの場合は
結局のところインスタンスのアドレスがキーになってるね。
ReSTならdocutils XMLならElementTree XDRならxdrlib
>>145 辞書のキーにするクラスは
>>150 の言うように注意して作らなきゃいけない
不変性についても自分で考慮する必要がある
そういう手間を省いてくれるタプルはやっぱし便利ってことだ
tupleの__hash__()はアドレスじゃなくて中身のハッシュ値(の合計?)を返すってことでいいのかな
どんなもんでも、__hash__ __cmp__ がうごけば dictに突っ込めるなんて、便利だな。
a=(1,2,3) a.__hash__() -821448277
>>153 thx
ざっと見た感じ docutils の方は ReST 以外もいろいろ扱えて、
汎用性に優れているようなのでこっちでいかせて貰うよ
……でかいモジュールは読むのがつらいorz
何か激しく勘違いされた気がする。
>133 どゆこと? array とはまた別の話?
クラスの定義とかを分割して記述することって出来る? オリジナルのソースに手を加えないようにして、既存のクラスに メソッド追加したいんですけど。
メソッドの追加なら継承すればいいだけの話では。
164 :
162 :2006/08/13(日) 01:30:53
>>163 ありがとう。
継承かぁ。でも、大方の場合だとそれで十分そうだね。
listやstringとかの組み込みの型にメソッドの追加を考えてたんだけど、
listってクラスじゃないようだし無理かな。stringもなのかな。
出来たとしても、組み込み型のいくつかはリテラル表現があるから
継承するだけだとちょっと不便になりそうな気もする。
何がしたいのか知らんけど試しに継承してみりゃ分かるんじゃね?
コレクションにどんなメソッド追加するつもりなんだろうな。 なんか無駄なことやってそう。
わかった、joinだな! ガンバレ。
この板は何で ID が出ないのだろう…
objective-cのカテゴリみたいな機能が欲しいのだろうか。
162みたいに、基本がまったくできていないくせに やたら小手先の技ばかり追いかける奴が職場にいます。 本質と関係ないところに時間をかけて予定を遅らしたり、 却ってコードを読みにくくしてばかりで、まわりが大変迷惑しています。 こういう奴にはどう対応したら良いでしょう?
発狂するまでデバッグ要員にしておくとよいよ
出力を端末以外にリダイレクトしていると、 Unicode文字列をprintで出力できないようなのですが、 出力をファイルに保存する方法はあるのでしょうか? ご教授ください。 $ cat test.py #!/usr/bin/env python # -*- coding: utf-8 -*- if __name__ == '__main__': print u'日本語' $ ./test.py > test Traceback (most recent call last): File "./test.py", line 5, in ? print u'日本語' UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)
>>162 RubyやObjective-Cみたいなふうにはできないみたいだけど、こんなのはどう?前スレから。
class Foo:
def f1(self):
print "** f1()"
def f2(self):
print "** f2()"
foo = Foo()
foo.__class__.f2 = f2
foo.f2()
171みたいなカスはほっといて。
>>174 site.py:
def setencoding():
encoding = "ascii" # "euc-jp" or "utf-8" or "shift_jis"
好きな物に書き換えろ
178 :
174 :2006/08/13(日) 21:49:14
>>176 ,
>>177 レスありがとうございます。
177さんの方法でうまくいきました。
$ cat test.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, codecs
if __name__ == '__main__':
sys.stdout = codecs.getwriter('utf_8')(sys.stdout)
print u'日本語'
>>175 こういうまともなレスを見ると、ほっとさせられるな。
そのやり方で拡張できるのは、ユーザ定義クラスだけなんだよ。
文字列のようなビルトインクラスは、拡張できない。
>>> "hogehoge".__class__.f2 = f2
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: can't set attributes of built-in/extension type 'str'
それはまさに、
>>164 の言うとおり、str や list は、もともとは単なる型で
あって、クラスではなかったからだろう。
2.2以降でビルトインクラスとなったのだが、ユーザ定義クラスとの非互換性が
残っているようで、これもそのひとつだ。まあ過渡的なものだろう。何か別の
やり方でなら出来るのかもしれないが、俺にはわからない。
他の言語にはビルトインクラスも動的に拡張できるものが多い。Ajaxライブラリの
prototype.jsが有名で、リテラル表現もちゃんと拡張される。
"hogehoge".f2()
が実行できるという、継承では絶対に実現できない世界だ。
Pythonもおそらくそうなるだろう。
ちなみに、ユーザ定義クラスだったら、インスタンスの__class__にあたるより、
クラスに直接こう書いたほうが早い。
Foo.f2 = f2
それにしても171とその周辺は、恥ずかしい奴らだ。
この種の動的なクラスの拡張は、メタクラス・プログラミングと呼ばれる技法の
ひとつで、Pythonの世界では10年も前から知られている。
http://yimado.s-lines.net/doc/why_python.html かつてはそれこそ奥義だったが、Ruby on Rails やAjaxのおかげで、いまや一般
プログラマにも知れ渡った技法だ。171はいったいどこの山奥で暮らしているのか。
知らないならば、黙っていればいいのに。
ビルトインクラスの改変はソースの可読性と安全性に致命的なダメージを与えるので 基本的には反対する。糞言語の真似をする必要はない。
>>181 その理屈ならユーザ定義クラスの動的改変も同様に禁止されるべきだな。
他の言語を条件反射で糞言語呼ばわりする貴様は糞プログラマ。
>>180 俺には、お前の方が恥ずかしい奴に見えるがな。
Javascriptの方がよっぽどスマートだな
>>185 だったらJavaScriptを使えばいいのにww
>>185 まあそう言うな。言語にどれも一長一短だ。JavaScriptにも悪い点は
いくらでもある。
それにな、このスレではRubyがPythonのパクリとよく言われるが、
実際にはJavaScriptのほうがよっぽどたくさんPythonからパクってるんだよ。
JavaScript のライブラリが Python 並に揃ってたら乗り換えるかもと思うときはある
>>187 何が何をパクってようと興味はないし、それが何か問題があるとも思わない
基本的には一番マシな言語を使いたいだけだよ
>>189 それは全く思わないな
Pythonがブラウザで動いたらと思うことはある
>>182 新スタイルクラスならある程度の保護はできるんじゃないかな
基本的にはちゃんと保護できるほうがPython的だと思うよ
>>192 それについては基本的に同意だ。俺も__slots__はありがたく思っている。
しかしメタプログラミングは、濫用すれば危険だが、適切な場面に限定して
使えば猛烈に便利なものだ。知っておく価値はある。
>>193 JavaScriptはだんだん良くなるね。互換性がぐちゃぐちゃになってしまった(?)
のが逆に幸いして大胆な提案がしやすいのかもね。w
基本的にはビルトインも含めてどんなクラスも動的に拡張可能にして、
それを明確に禁止したいときは、あとから__slots__で禁止できるように
すればいいんジャマイカ?
>>195 同意。
>>181 >ビルトインクラスの改変はソースの可読性と安全性に致命的なダメージを与えるので
>基本的には反対する。糞言語の真似をする必要はない。
改変とやらが「変更」を指しているのか「追加」を指しているのかわからんが、
メソッドの追加はできてほしいなあ。これができるとオブジェクト指向的にはすごくやりやすい。
逆に、既存クラスのメソッドの変更はできなくてもいいや。わかってて上書きするならいいけど、
たいがいはそんなメソッドがあるのをしらずに上書きしてしまって、見つかりにくいバグに
なるだけだから。
>>180 >知らないならば、黙っていればいいのに。
ちょー同意。なんでこういうやつって出しゃばるのかね。
職場にいるんだよ、自分が知らないことを聞かれると、質問したやつを攻撃するバカ先輩。
知らないなら知らないって言えばいいのに、それを言うことをプライドが許さないのかなー。
まじでまわりが大変迷惑しています。
こういうやつにはどう対処したらいいでしょう?
199 :
デフォルトの名無しさん :2006/08/14(月) 09:13:20
でも
>>162 が言ってる内容はクラスの承継がわかりませんってことだろ?
>>171 が出てきて当然だと思う。
>>198 こんなところで愚痴をたれてないで、直接その先輩に言え
>>171 そういう勇み足は誰しも通るもの。
うまく吸収してやるのが熟練者のつとめでせうが。
向上心の無いバカよりよほどいい。
なんかおかしな流れになってるが、誰しも自分の知識内でしか物を言えない。 「知らない奴は物を言うな」と言ってる人間は、自分より知識がある人間の存在を 考えたことは無いのだろうか? それからいちいち罵倒せずには発言できない奴、ウザいぞ。 罵倒抜きで発言してくれ。
それからいちいち罵倒せずには発言できない奴、「ウザいぞ。」 罵倒抜きで発言してくれ。 ウザイぞ、は罵倒に入らないそうです。
それからいちいち罵倒に反応して、さらに場を荒らす奴、「ウザいぞ。」 罵倒抜きで発言してくれ。 ウザイぞ、も罵倒に入ると思うが俺は偉いので許される。
いちいち反応するな。 ウザいぞ。
Uzaython
そういう議論はマ版へどうぞ
>>202 は腕の良い釣り師。
つか、この時間、こんなに馬鹿が巡回してるとはw
お前ら釣られすぎw
もう、みんなで
>>171 を埋めて終わりにしないか?
余程
>>171 にカチンと来たんだなw
何がそんなに引っかかるんだ?読み流せよw
Python使いには、お子様が多いようですね。
さて。 Pythonの話をどうぞ。
夏休み警報発令中 * * * 今は、夏休みです。 * * *
外部からメソッドを追加したり変更したりできるとなにが便利なの?
>>218 - 動的に追加したいとき
- 何かの理由で継承を使いたくない、または使えないとき
サルには聞いてません
>>218 Pythonでは不要。
必要なものだったらGuidoパパがとっくの昔に採用しているはず。
221 = 171
>>221 だから、知らないなら黙ってればよかったのに。
そうすれば恥書かずに済んだんだよ。わかる?
メタクラスはよく理解して使わないとメタメタになります。
>>225 そりゃ、ちょっと大げさだよ。確かに昔は、メタクラスは神秘の奥義だった。
だけど今では、そこまで警戒すべきものじゃない。試してみるぐらいは、誰でも
していいと思うよ。
>>226 まあ、その辺にしといてよ。
>>221 は普通の言い方をしている。
人を叩いていない相手を叩くのは、あんまり趣味じゃない。
Pythonは手段であって、目的ではないはず。
230 :
デフォルトの名無しさん :2006/08/14(月) 16:58:07
>>229 そりゃ、確かにそのとおりだよ。
だけど、手段を知って理解してからでないと、目的に適うかどうかは
わからないんだよ。
程度問題だけど。 使う前に、究めるまで知らなければ 使えないと言うこともない。 色んなレベルのひとがいるんだから 知らない奴は喋るな見たいな事を言ってる人もいるけど。 スレタイよくみたほうがいいしそんな詳しい人は こんなレベルの低いスレで粘着しなくてもいいんじゃないかな。
議論が抽象的で噛み合っていない
はいはい。
ガキンチョばっか
>>232 何を言っているのかよく分からんけど、
知らないこと自体はまったく問題ない。
知らない人が間違ったことを話すのも、まったく問題ない。
誰かが普通にフォローすればいいだけだ。
Pythonはもともと素人向け言語でもあるし、間違うことに目くじらを立てるの
はおかしいと俺も思う。
しかし、自分も知らないくせに、人を叩いているような奴がいたら、俺はそいつを
叩きたくなる。理由は、単に俺の趣味だ。
はいはい、お前ウザイぞ
ウザイぞは罵倒に入らないので叩いてないよ。 俺はこのスレに来る。 理由は、単に俺の趣味だ。 趣味ならなんでも許されるルールも出来た。
>>236 趣味でスレを荒らされても困るんですが。
スルーできないひとは、2chでどの板でも 大変だとおもいますよ。
IDでも出れば、あぼーんで消せるんだけどなあ。 しばらくは脳内スルーするか。
レベル2くらい?
>>221 を理性的と形容する時点で、完全な釣りと分かる恥ずかしいレスだなw
>>199 >でも
>>162 が言ってる内容はクラスの承継がわかりませんってことだろ?
えぇっー 162で書いてるのは
>クラスの定義とかを分割して記述することって出来る?
ってだけじゃん。どこをどう読んだら継承の話になるのやら。
あ、そうか、「継承」じゃなくて「承継」か。ごめん、それはおれもわからんや。
>>171 が出てきて当然だと思う。
本人乙。
>>202 >「知らない奴は物を言うな」と言ってる人間は、自分より知識がある人間の存在を
>考えたことは無いのだろうか?
171乙。「知らないやつはものをいうな」じゃなくて「知らないくせに他人を罵倒してるだけのおまえはものをいうな」だよ。
なんだか変なのに居つかれちゃったね
そろそろPythonの話題にもどろうか。
釣ってるつもりが釣られてる、それがPythonヌレッド。 さあPythonの話しようぜ。
>>162 が必死で他人を叩いているスレはここですか?
叩いているのは171だろ…。
俺は荒らすけど、イヤなら出てけ、ですか
俺は荒らしをスルーしないで絡むけど、いやなら出てけ、だろ。
他人は罵倒するのを禁止するけど、俺は罵倒する、というキチガイですから
荒らしに対応する奴も、荒らしなんですが。
その調子その調子。 お盆休み中にこのヌレッドも消費しようぜ!!
171と162が、なんか喧嘩してるようだけど 171見たいな奴は、ずっといるから。 もうやめにしてPythonの話題にもどろうよ。
>もうやめにしてPythonの話題にもどろうよ。 じゃあお前が率先してPythonの話題振るなどしろよ。
171はアホなので叩かれて当然だろ。
まあどうせ3人くらいしかいないんだ,気にするな
265 名前:デフォルトの名無しさん[sage] 投稿日:2006/08/14(月) 19:03:36
>>263 煽ることしかできないキチガイ
なんか、自作自演に見えてきた…。
ガキンチョばっか
ガキンチョばっか、それがPythonic
まぁお前らがどうなろうと知ったこっちゃ無いけどさ、 2chの雰囲気に流されて「馬鹿」とか「キチガイ」などの言葉で 平気で人を煽れるようになったら、それはお前の人格がそういう風になったということだからな。
誰かが言った スレが延びている日は読み飛ばせ なるほど、至言だな
二重人格?
>>275 それはお前みたいのが書き込んでるからだな。
Python-MLの大人な対応。 スパムがMLにくる。 Make $1000's Monthly! Over 600 work at home firms are in need of survey takers, product blah,blah... 返信: Just to bring this thread back on topic, you could also make thousands of dollars monthly by becoming a professional Python coder or consultant. ;-) 返信: Yes, easily -- according to SD Magazine's yearly surveys, Python programmers have been the best-paid ones for years in a row now (I believe the worst-paid ones are Visual Basic programmers, as a group). わろた。
>>274 いえいえ、元々品性下劣な人間が煽るのですよ。
>>278 Pythonのコーダで月に数千ドルか…。
ジョークなんだろうけど、本気で英語を身につけようかと思ったよ。
面白い投稿があった。 質問 hi can we hide a python code ? if i want to write a commercial software can i hide my source code from 省略。 --------------------------------------- First Iranian Open Source Community : www.python.ir 返信 Bayazee wrote: > hi > can we hide a python code ? > if i want to write a commercial software can i hide my source code from ^^^^^^^^^^^^^^^^^^^^^^^^[1] > users access ? > we can conver it to pyc but this file can decompiled ... so ...!! > do you have any idea about this ...? > > --------------------------------------- > First Iranian Open Source Community : www.python.ir ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^[2] [1] and [2] don't seem to be compatible. Really the only way to keep your code secret is not to distribute it -- provide the functionality from a web server. イラン人わろた。
無理に話を戻そうとして、どうでもいいメール貼らないでくれるかな
>>285 たしかに、仕事で使ってるとそういうこともあるね。
>>286 うん、リリースするんだ。お客様に、サーバごとお渡しする。
秘匿化のためにC++で書き直すというのは、ちょっとつらすぎる。
C++得意じゃないしね。
>>288 そちらはどうしてる?
そこでメタクラスですよ!
うちの会社では、受託開発物は言語を問わずコードごと、著作権ごと渡すよ。 自社開発するライブラリは、C++でやるな。
>>290 ,
>>292 渡さないことになってる。サーバ込みのパッケージ商品として、ほかの
お客様にも買っていただく予定なんだ。
今まではJavaとC++でやってたんだけど、Pythonを使ってみたら、MATLABみたいに
使えるし、便利なんで…。楽を覚えたら元に戻れないなあ。
>>291 いや、関係ないから。
>>293 へぇー、今でもそういう形態でやってるとこあるんだね。
うちでも以前は似たようなことやってたけど、今ではもうないなぁ。
もっとスマートな方法を考えようぜ。 インタープリタの名前をjavaにするとか。 いっそjythonにするとか。 相手方にPython使いがいないことを祈るとか。
機械ごと渡しちゃうと どうしようもないよねえ。 Python-mlにも定期的にそういう話題が投稿されるけど ウェブサービスにしたら?という意見が多い。 xmlrpcとか。。
>>297 ワロタ。JythonだとSciPyが使えなくてね。
あと、相手方にPython使いがいないことを祈るのは、もうやってる。
Pythonが日本で普及しないのは、0.001%ぐらいは、自分のせいかも。
>>298 http://www.xmlrpc.com/ こんなものがあるんだ。知りませんでした。ありがとうございます。
しかし、これを使うのなら、お客様にサーバはお渡ししない契約に
変える方が早いかも。まあそんな契約変更ができるのか、自分には
分からないんですけどね。
単に .pyc だけ渡すんじゃ駄目? 簡単に戻せるんだっけか
pyoならもっとリバースエンジニアリングできづらくなるんじゃね?
__import__ をフックして 秘密にしたいモジュールを読むときだけ 別の処理をさせてdecodeさせることも出来るけど 結局この処理をおこなうソースは見えてしまうわけだ。
(`・ω・´)バイトコードだってがんばればリバエンできるお
pyhonでメタプログラミングってどういうのがあるんですか?
urlopenで取って来たyahooのhtmlソースをutf-8に変換出来ません...orz ※元の文字コードはeuc-jp encode("UTF-8")を使っているんですが、文字化けします。 site.pyの設定は「encoding = "mbcs"」と「encoding = "UTF-8"」を試しました。 pythonを使っているといつも日本語処理で苦労するんですが、 皆さん何かテクニックをお持ちですか? また上記に対する解決方などありますか? 環境はWinXP、Python2.4
まずはソースを晒しな。 話はそれからだよ。
encode(), decode() の使い方をまちがえたんだろうね。
>>308 > 皆さん何かテクニックをお持ちですか?
自分がPythonの中の人になったつもりで考える
Pythonの中の人は超能力者ではないことを忘れない
chardet ってのがあるので こいつでエンコーディングを調べる。 で、その戻値で、unicodeにもどせばいいです。 決め打ちだと、たまに思っても見ない文字コードになってたりするので。
>>307 メタクラスは、ユーザーの99%の人が考える以上に奥の深い仕掛けです。
必要かどうかを思案しているようなものは、必要ないのです
(本当にそれを必要としている人は、それが必要であることを確信しており、
なぜ必要なのかなど説明の必要はありません)。
decompyleで、pyc -> py にしたら 読みやすいコードがでてくるね! おどろき。
>>315 クラスを返す関数とかを作ることがメタプログラミングっていうことでしょうか?
パッとは何に使うのかが分かりませんけど・・・
318 :
308 :2006/08/14(月) 23:29:10
>>312 unicode(line, "EUC-JP", "ignore").encode("UTF-8")
のような形でできました。
ありがとうございます。
>>320 黒魔術だかね。
わからないままの方が幸せだと思うよ。
これが黒魔術w? 自分が理解出来ないからって、他人まで引きずり込もうとするなよ…
せいぜい青魔術くらいだろ
>>324 オマエも、わからないままの方が幸せだと思うよ。
>>326 無知が幸せだと思うのは単細胞の能天気馬鹿だ。
プログラマー向きではない。
使い方は簡単 使いどころを見つけるのは確かに難しそうだ
With a metaclass you can trigger some code to be run everytime a class with that metaclass is created (and subclasses inherit the superclass's metaclass). だってさ。
メタクラスは、ユーザーの99%の人が考える以上に奥の深い仕掛けです。 必要かどうかを思案しているようなものは、必要ないのです (本当にそれを必要としている人は、それが必要であることを確信しており、 なぜ必要なのかなど説明の必要はありません)。 - Tim Peters
いや。 使うのも苦労するよ。 設計者が想定しない状況で不具合が現れたときに 自分で修正するのとか大変。
327は、自分は残りの1%だと信じて疑わない単細胞の能天気馬鹿。
>>332 オウム返しのような頭の悪い煽りは止めろよ。
それじゃ理解出来ないわけだ
まあ、普段から使わないよな。 むしろ、ちょこっとしたスクリプトで こんなの使ってたら下手な見本だな。
Guidoタンの書いた分かりやすいドキュメントみたいのは無いですか?<メタクラス
>>321 gnosis softwareって名前からしてめちゃ怪しい・・・w
フレームワークとかを設計しようというレベルになって はじめて必要になるもんじゃないの?
x 使い方は簡単 o 仕組は簡単 ってことね ライブラリがヘボいと大変なのは共通でしょう それともメタクラス特有の苦労があんのかな
ここ数日ずいぶん賑やかだな。 どうして突然こんなに厨がわいてきたの?
では本人に聞いてみましょう
>>338 どうしてですか?
a.k.a the killer jokeて・・・
342 :
320 :2006/08/15(火) 00:42:35
321を読んだ後、問題のコードを眺めていたら、いきなり腑に落ちました。感謝。 ちなみに、使いどころ、というか使われどころはSQLObjectのSQLObjectクラスです。
「メタクラス」を見た瞬間に 「え?だってメタクラス無かったら誰がクラス名の名前空間を提供するん?」 と思ってしまった。 今は少し反省している。
そう。 彼はちょっと背伸びしたい年頃の男の子なのです。
メタクラスおもろいな。できることをまとめると↓こんな感じ? クラス A のメタクラスを M とする。 1) A を定義する直前に所定のコードを実行できる。 この目的には M.__new__() をオーバーライドすればよい。 クラス名を変えたり基底クラスを増やしたりメソッドを置換(ラップ)したりできる。 比較: A.__new__ においてインスタンスの生成方法を変更できるのと同様に、 M.__new__ において A の生成方法(すなわち A の定義)を変更できる。 2) A を定義した直後に所定のコードを実行できる。 この目的には M.__init__() をオーバーライドすればよい。 比較: A.__init__ において A (および A の下位クラス) のインスタンスをいじれるのと同様に、 M.__init__ において A (および A の下位クラス) をいじれる。 3) クラスメソッド(第1引数がインスタンスではなくクラスであるメソッド)を定義できる。 この目的には M に適当な名前のメソッド(例えば foo)を定義すればよい。 A.foo() として呼び出すと M.foo(A) が実行される。 比較:A のインスタンスを a とすると a.bar() と A.bar(a) は同義。 *** 要約 *** クラスがインスタンスの生成方法や振舞いを規定するのと同様に、 メタクラスはクラスの生成方法や振舞いを規定する。
てか、クラスはクラスメタクラスのインスタンスって所が出発点なわけで
便利だね。(まとめありがとう) 言語を拡張したり、ライブラリを提供する場合には 場合によっては実装の選択しになるかもしれない。 アプリケーションを作る場合には、 なかなか必要な場面には出会わない気がします。 いろいろライブラリを突っ込んでいるんだけど、全部grepしてみても python2.3 では、 python2.3/unittest.py python2.4 では、 python2.4/site-packages/dbus/service.py python2.4/unittest.py python2.5/string.py python2.5/unittest.py python2.5/ctypes/_endian.py だけでした。
メタクラスって,Factory Patternのことだろ。
したり顔でデザインパターンを持ち出すのはやめて貰おうか
デザパタと口にしただけで条件反射で怒るのもやめて欲しいな。
いや、クラスインスタンスの作成を以上するから Proxy Pattern だ。
デザパタ厨に汚染された。もはやPythonもこれまで。
パターンを分類して名前を付けることは他人とのコミュニケーションや理解の系統化に
役立つが、分類した時点で安心してしまって細部を無視しがちになることは弊害のひとつ
であろう。また分類は絶対的なものではなく
>>348 >>351 のように見方次第で相対性を
持つことも忘れてはならない。
その「もののいろいろな見方」そのものに名前を付けたのが デザインパターンのありがたみだと思う。 ごちゃごちゃ抽象的な議論を毎回する代わりに、名前を言えば済むから楽だよね。
と、抽象的な議論を振りかざすばかりで、 いつまでたっても具体的なコードを出せない厨が申しております。
あなたは現代のプログラミングに向いていないと思うよ。
んじゃ、昔からある用語を使わないのはなぜ? 言葉の言い替えで、御満悦?
またまた、どうでもいい議論もどきでスレを消費している件について。
>>358 ごめん、自分はデザパタしか知らないから、デザパタと同じものが昔からあるとは
思わなかった。
昔からある用語だと、メタクラスって何になるの?
煽りじゃなくて、真剣に知りたい。
>>348 > 348 名前:デフォルトの名無しさん :2006/08/15(火) 11:15:47
> メタクラスって,Factory Patternのことだろ。
>>360 ごめん、まさか真正だとは思わなかった。
Metaclass は Factory Pattern でもあるし Proxy Pattern でもあるのだけど それ以上に Python の プロトタイプ指向然とした 柔軟なオブジェクト指向機能実装を活用している希ガス
最近何にでも真っ先に食い付いて齧った後は知らんぷりしてるのは俺です
ところで、荒らし対策にもデザインパターンがあったら、初心者も
荒らしに対応しやすいんじゃないかと思うんだが。
正確にはアンチパターンかな。
今回のは、Pythonスレに多いパターンだけど、仮に名づけて
「厨呼ばわりパターン」
現象
・根拠を示さず人を厨呼ばわり
・じゃあ何が正しいの?と聞き返しても、馬鹿にするだけで何も答えない
原因
・単に議論が理解できてない
・自己正当化のために、そういう議論を無価値だと決め付けたい
対策
・煽ってくる相手は、たとえもっともらしい口ぶりでも、相手にしない。
・そもそもまともに説明する能力があれば、煽ってきたりはしない
参考:デバッグパターン
http://monoki.fc2web.com/diary/txt/computer/debugpatern.html
メタクラス、使うときちょっと不安になる ガベコレとかスレッドの絡みってクリアなのかな?
>>366 ありがとう。実はそのページは、かなり昔に読んだことがある。
読み直したけど、ちょっと目的が違う。
議論パターンは、議論をしたい人が、議論を建設的な方向に向けるためのものだが、
荒らしパターンは、まともな議論と荒らしを見分けて、やりとりを打ち切るためのもの。
手始めに 「まとめ厨パターン」と「レッテル貼りパターン」と 「なんでもデザパタパターン」と「分類厨パターン」 あたりのパターンをまとめてレッテル貼りして分類してくれ。
>>370 項目の内容が全部同じですよ。必死ですね。
自分にレッテルが貼られることが予想できたのなら、まともに話をすればいいのに。
ちょっと違うな。 こういう人は、「議論は出来るけどやらない」と思っているのだ。 出来ないだけなんだけどね。
このスレは一体なんだぁ? 誰かがメタクラスに触れたら噛み付き、 デザパタに触れたら噛み付き。 自分が知らない高度な話題が出たら即噛み付き虫が常駐してるようだな。
方言ブームって、なんだったんだろう。あれまだ続いてるのかな。
ひまじんのこまったちゃんがひとりいるのかね。 たぶんみんなそいつのせい。
ここは、ドンキホーテさんが沢山いるスレです。
デザインパターンの話をしたい人がいるようなので ありがたい話をしてくださいよ。聞いてるからさ。 はいどうぞ。
俺達にはメタクラス以前にマターリが必要だ
安売り王がいると聞いて飛んできますた
>>384 クラス名の最初の文字は大文字にしろ。
class Mataari:
そんなことにまで噛み付くのか。ここの噛み付き虫は。
Javaの人たちなら、デザパタの話に嬉々として応じてくれるのに Pythonの人たちはどうしてデザパタの話をしたがらないんですか? 何かデザパタに恨みでもあるんですか?
噛み付いてない噛み付いてない。
>>387 そんなことないんじゃない?
あ,噛み付いてないからね(ww
>>387 デザパタに恨みはないが、おまえみたいなアホには恨みがあるのだよ
↑ガブッ
さぁ、聞いてあげるからデザインパターンとPythonの話題で なにか、いってみな?さぁ。
>>360 >昔からある用語だと、メタクラスって何になるの?
昔からある用語で解説ヨロ。
「昔からある用語」ってどのくらいを指すか知らんが、20年前Smalltalkを勉強したときには 既にメタクラスがあったぞ
A Pattern Language は、Christoper Alexanderの1997年の著作 ……などとずれたレスを付けてみる。
記憶すらもうろうとしている窓際オヤジが スレに粘着して荒らしてるのね
昔からある用語で言うと、メタクラスは「オブジェクトとしての“クラス”の属するクラス」。 より厳密には、注目するクラスをソロインスタンス(シングルトン)として持つクラス…かな。
えー? 英語でもメタクラスといわないで、そんな回りくどい言い方されてたっての? んなアホな。
つうか、そもそも>402は「用語」じゃないような。あれじゃ説明。
>>403 英語なら、the class of a class 。
メタオブジェクトとメタクラスの区別もつかん406がしゃしゃり出てきている件について…。
A Metaclass is a class' class. If a class is an object, then that object must have a class (in classical OO anyway). Compilers provide an easy way to picture Metaclasses. Classes must be implemented in some way; perhaps with dictionaries for methods, instances, and parents and methods to perform all the work of being a class. This can be declared in a class named "MetaClass", or class Class in Java. The Class class can also provide services to application programs, such as returning a set of all methods, instances or parents for review (or even modification), as found in Java. Java's metaclass Class provides some degree of reflection, including retrieving methods, fields, nested classes, loader, and also the ability to generically create new instances of a class and generically invoke methods on an object.
[Booch 94, p 119] provides another example in Smalltalk with timers. In Smalltalk, the situation is more complex. To make this easy, refer to the following listing, which is based on the number of levels of distinct instantiations: 1 Level System All objects can be viewed as classes and all classes can be viewed as objects (as in Self). There is no need for Meta-Classes because objects describe themselves. Also called "single-hierarchy" systems. There is only 1 kind of object. 2 Level System (C++) All Objects are instances of a Class but Classes are not accessible to programs (no Meta-Class except for in the compiler and perhaps for type-safe linkage, as in C++). There are 2 kinds of distinct objects: objects and classes.
3 Level System (Java) All objects are instances of a class and all classes are instances of Meta-Class. The Meta-Class is a class and is therefore an instance of itself (really making this a 3 1/2 Level System). This allows classes to be first class objects and therefore classes are available to programs. There are 2 kinds of distinct objects (objects and classes), with a distinguished class, the metaclass. 5 Level System (Smalltalk) Like a 3 Level System, but there is an extra level of specialized Meta-Classes for classes. There is still a Meta-Class as in a 3 Level System, but as a class it also has a specialized Meta-Class, the "Meta-Class class" and this results in a 5 Level System: object class class class (Smalltalk's Meta-Classes) Meta-Class Meta-Class class The "class class"es handle messages to classes, such as constructors and "new", and also "class variables" (a term from Smalltalk), which are variables shared between all instances of a class (static member data in C++). There are 3 distinct kinds of objects (objects, classes, and metaclasses). (end)
メタクラスは30年くらい前からある用語ということでこの件は終了だな
メタクラスは 源氏物語にも登場する 由緒ある用語です
>>411 メタクラスは MOP の応用例として出てきてるだけだろ?
つか、なんでメタクラスプログラミングをもってメタプログラミングなのかが分からん。 たしかにメタクラスを使ってメタプログラミングはできるが、メタクラスプログラミングが 必ずしもメタプログラミングに属するものではないし、逆に、メタプログラミングに メタクラスを使うとも限らない。メタプログラミングについて知りたいだけなら、メタクラスが いつから使われていたかなんて話はそもそも関係ない。
>>416 その通りだ。歴史の話はこのくらいにしてPythonの話に戻ろう。
まったくだ。 過去しか振り返らない敗北者は逝ってよしだ。
しかし歴史を知らない者は未来を予想できない事もまたしかり。 歴史を踏まえたうえでモトの話に戻ってほしいなり。
歴史認識の問題は荒れやすいな
話の流れとぜんぜん関係ないけど
>>178 のテクニックに関して。
俺も同じテクニックを使うことがあったんだけど、この方法に違和感を感じていた。
とゆーのは、sys.stdout を大域的に書き換えて print 文の挙動を変えるという
やり方が乱暴というかトリッキーであまり好きになれないんだよね。
で、こういう目的のために「print >>ファイル, ...」の形式の print 文は
とても便利なんジャマイカということに今さら気づいた。
import codecs
from sys import stdout, stderr
Writer = codecs.getwriter("utf-8")
stdout = Writer(stdout)
stderr = Writer(stderr)
u = u"日本語"
print >>stdout, "u =", repr(u), u"('%s')" % u
print >>stderr, "Error:", u
この方法の利点:
1) print 文の便利さはそのまま。
2) 出力先が端末でもファイルでも同じように動作する。
3) Writer でラップした stdout や stderr を局所的に使える。
4) 俺は今ラップした標準出力と標準エラーを使ってるんだぞーという注意事項を
陽に記述できて気持ちがいい。
きっとこの用途はこの形式の print 文が導入されたときに想定されていたんだろうな。
なんつーか、先見の明ってのはこういうことを言うのだろーとオモタ。
>>421 俺的には、そのやり方はスゲー気持ち悪いけどな
>>421 異論もあるようだけど、私もそのやり方が大好きな一人。
Python 3000 でprint文が廃止になると知って、どうしようと思ってる。
>>348 > 348 名前:デフォルトの名無しさん :2006/08/15(火) 11:15:47
> メタクラスって,Factory Patternのことだろ。
os.print() とか?
>>429 おお!これは分かりやすい!ありがとう!
>>421 =+ や >> は導入するときかなりモメた。
真にPythonicなPythonは1.5.2まで、それ以降はPythonと認めないという
Python原理主義者も密かに存在する。
私はPython3000しか認めません
1.5には戻れないなあ。 がんばって2.2,涙をのんで2.1になら戻れる。
>>432 (・∀・)人(・∀・)
すべての文字列が真のUnicode文字列になる
Python3000しか認められない。
=+ と >> ってなに? そんな演算子あったっけ、というよりチュートリアルに 演算子をまとめた項目ないのね…。一節割いてる書籍買わにゃダメかい。
>>435 Python.orgに載っていないことが
一般書籍にかいてあるとはおもえないけど。
435が聞きたいのはprintに使える>>とかのことだろ
>>439 原理主義者にとってはどうでもいいことだ。
その「原理主義」って、興味あるな。 1.5.2までのPythonって、どういう点において「純粋」で、 それ以降はどういう点で「世俗化」したとされているの?
みんな、済まんこってす。
石本さん。。。?
PyConロゴのほうがいいな。
もっとアグレッシブなデザインキボン(´・ω・`)
>>449 ×テュポーン → ○ピュトーン
まあ、紛らわしいよな。
ピュトーンピュトーンピュトーン
おお、ただのヘビから神話の魔神に昇格ですか。 しかし、死んでるやんw
Πυθων
このロゴいいね でも作者自ら、気持ち悪いヘビのことではありません って言ってるのに、あくまでヘビで通すのか
我々にとっては蛇って単に気持ち悪い動物だけど、キリスト教な人たちにとってはもっと 宗教的な嫌悪感があるって聞いたことがあるんだけど、そういう抵抗感は無いのかねぇ
ないんじゃない?
我々は蛇好きよ
>>457 そんなのあったらパイソン柄が流行ったりしない
Pyphan
>>457 それ、アダムとイブの話にひっかけたガセ
ジェネレータの使い方をおぼえてから なんでもかんでもyieldするようになってしまったんですが 他の言語を使えないカラダになってしまいそうで不安です 大丈夫でしょうか?
Common Lispについては、『On Lisp』に継続マクロが載っていたな。 Haskellには継続モナドがある。 継続とは結局、 ・現在実行中の環境を凍結、保存 ・保存した環境を呼び出して復活 する機能のことで、その応用範囲は大変広い。
言語オタの自分自慢大会にようこそ。
アセンブラで yield を実装したよ!!
やれやれ、また噛み付き虫が出たか。 自分に分からないことは、黙ってていいんだよ。
ぼくは まったく きにしていない
474 :
463 :2006/08/18(金) 01:06:32
>>466 でも以前ムネオたんが、Pythonのyieldはコルーチンを作る正統派なんだから
Rubyみたいにダサいのとは一緒にするな!って言ってたよ
>>474 おお、そんな見識を持っているとは、ムネオは立派だ。
確かに継続は、goto以上に危険だから、これを剥き出しでプログラマがいじれる言語は
安全性もへったくれも無くなってしまう。この点についてはSchemeやRubyへの批判も多い。
yieldという扱いやすい形に閉じ込めておくほうがPythonicだとは思う。
もちろんその代わり、応用は狭まるのだけど。
そもそもRubyのマニュアルに継続なんて言葉は無い
みんなRubyが大好きなんだなw 俺も勉強してみようかな
しかしなあ、Jythonはもう1年以上放置されてるじゃないかよ。
http://www.jython.org/Project/news.html いつになったら、2.2alphaは正式リリースされるんだよ。
俺の使ってるJython2.1は、yieldが使えないんだよ。
こんなことになるなら、Jythonは切り捨てて、Stackless とcPythonを統合すれば
良かったじゃないか。
>>481 作者が.NETのIronPythonに行っちゃったから、Jythonは当分休眠状態だろうね。
IronPythonは継続をサポートできるのかしら?
いずれにせよ、JVMというきわめてメジャーなプラットフォームで継続をサポートできない
ならば、Guidoが本家のcPythonに継続を組み込むことは無いと思うよ。
そろそろIDが必要なお年ごろだな。
>>483 Jython は Frank Wierzbicki という人がメンテを引き継いだそうだ。
私は、たとえJythonが継続をサポートできたとしても、Guidoは継続を採用し たがらないと思うよ。危険すぎるし、知られてないし(継続を知っている人は ほぼ100%Schemerだろう)、使いこなせるようになるのも大変だし。 yieldを介してだけ継続を扱うのがPythonicということで。 どうしても継続を使いたい人は、Stacklessという立派なものが別にあるのだ しね。
488 :
デフォルトの名無しさん :2006/08/18(金) 10:45:34
すみません、Pythonのloggingモジュールを使っているのですが、
http://www.python.jp/doc/release/lib/module-logging.html SMPTHandler で日本語メールを送信しようとするとエラーになります。
どうするのが一番良いと思われますか?
とりあえず、ロギングメッセージをすべて英語にすることで回避していますが…。
2006-08-17 14:50:07,069 WARNING 日本語、大丈夫?
Traceback (most recent call last):
File "/usr/lib/python2.3/logging/handlers.py", line 482, in emit
smtp.sendmail(self.fromaddr, self.toaddrs, msg)
File "/usr/lib/python2.3/smtplib.py", line 688, in sendmail
(code,resp) = self.data(msg)
File "/usr/lib/python2.3/smtplib.py", line 485, in data
self.send(q)
File "/usr/lib/python2.3/smtplib.py", line 312, in send
self.sock.sendall(str)
File "<string>", line 1, in sendall
UnicodeEncodeError: 'ascii' codec can't encode characters in position 189-196: ordinal not in range(128)
>>488 検証用の短いソースがあったほうが
いいよね。
490 :
488 :2006/08/18(金) 11:27:53
設定ファイル test.cnf ------------------------------------------ [loggers] keys=root [logger_root] level=NOTSET handlers=mail [handlers] keys=mail [handler_mail] class=handlers.SMTPHandler level=WARN formatter=form01 args=('localhost', '送信元@hoge.com', ['送信先@hoge.com'], 'Logger Subject') [formatters] keys=form01 [formatter_form01] format=%(asctime)s %(levelname)-8s %(message)s datefmt=
テストモジュール test.py --------------------------------------- #!/bin/env python # -*- coding: utf-8 -*- import logging import logging.config logging.config.fileConfig("test.cnf") logging.warning(u'日本語、大丈夫?')
492 :
488 :2006/08/18(金) 11:31:12
以上です。 よろしければ、アドバイスをお願いいたします。
>>491 >logging.warning(u'日本語、大丈夫?')
logging.warning(u'日本語、大丈夫?').encode('utf-8')
してみれ
あ、カッコの位置がずれた それくらい脳内補完すれ
>>488 ちょろっとhandlers.pyのソースを覗いてみた.
handlers.py の中でメールのヘッダと本文を生成してるけど
MIMEヘッダーとかは付いてない.From:, To:, Subject:, Date:, 本文.
なので
>>493 のようにencode()使えばUnicodeErrorは出なくて
メールは送信できるかもしれんが,メーラによっては文字化けすると思うよ.
SMTPHandlerを継承して,MIMEヘッダ付きメッセージを生成するemit()を
実装したハンドらを作るしかないかな.
ありがとうございます。 logging.warning(u'日本語、大丈夫?'.encode('iso-2022-jp')) これで確かにメールには日本語が送れるようになりました。 しかし、当然ですが、コンソールやログファイルへの書き込みは化けます。 そちらはutf-8ですから。 ちょっと独自のHandlerを作っている余裕はありませんので、 やはり、ロギングにはasciiしか使わないことにします。 いろいろお世話になりました。
>496 sitecutomize.py をつくってそのなかに sys.setdefaultencoding('utf-8') で解決しない? 詳しくはsite.pyの中を参照。
..typo sitecutomize.py -> sitecustomize.py
499 :
デフォルトの名無しさん :2006/08/18(金) 13:07:35
497より497=488の方がよく分かっていそうな件
>>497-498 ありがとうございます。ご返事遅れました。
その方法はデフォルトのエンコーディングを指定するためのもので、
対話環境でのを実行には不可欠ですが、
>>491 のように、モジュールファイルの2行目でエンコーディングを明示して
ある場合、動作に影響はしないと思います。
import logging.handlers def emit(self, record): try: import string import smtplib port = self.mailport if not port: port = smtplib.SMTP_PORT smtp = smtplib.SMTP(self.mailhost, port) msg = self.format(record) jmsg = "Content-Type: text/plain;charset=\"iso-2022-jp\"\r\n" jmsg += "Content-Transfer-Encoding: 7bit\r\n" msg = "From: %s\r\nTo: %s\r\nSubject: %s\r\nDate: %s\r\n%s\r\n%s" % ( self.fromaddr, string.join(self.toaddrs, ","), self.getSubject(record), self.date_time(), jmsg, unicode(msg).encode('iso-2022-jp') ) smtp.sendmail(self.fromaddr, self.toaddrs, msg) smtp.quit() except: self.handleError(record) logging.handlers.SMTPHandler.emit=emit logging.config.fileConfig("test.conf")
みすた。これで動くんでないか。 def emit(self, record): try: import string import smtplib port = self.mailport if not port: port = smtplib.SMTP_PORT smtp = smtplib.SMTP(self.mailhost, port) msg = self.format(record) jmsg = "Content-Type: text/plain;charset=\"iso-2022-jp\"\r\n" jmsg += "Content-Transfer-Encoding: 7bit\r\n" msg = "From: %s\r\nTo: %s\r\nSubject: %s\r\nDate: %s\r\n%s\r\n%s" % ( self.fromaddr, string.join(self.toaddrs, ","), self.getSubject(record), self.date_time(), jmsg, unicode(msg).encode('iso-2022-jp') ) smtp.sendmail(self.fromaddr, self.toaddrs, msg) smtp.quit() except: self.handleError(record) logging.handlers.SMTPHandler.emit=emit logging.config.fileConfig("test.conf")
503 :
488 :2006/08/18(金) 16:08:17
今試してみました。バッチリです!ありがとうございました。 なお、設定ファイルには書いてありませんが、同時にRotatingFileHandlerも 使っていて、こちらも文字化けしています。 こちらのほうも、SMPTHandlerと同じ要領で自分で修正してみようかと思います。
どういたしまして。 loggingって使ったこと無かったので 丁度良い勉強になりました。
505 :
488 :2006/08/18(金) 16:48:10
すみません、一つ訂正です。 RollingFileHandlerは、出力は文字化けしていませんでした。 文字化けしていたのはEmacsの方でした。 何度か試行錯誤したときに、iso-2022-jpで出力したことがあって、 そのせいでEmacsが文字コードを誤判定してしまっていただけでした。
SMTPHandler.emit()は、2行追加して1行修正するだけなのに、メソッド全体を 書き直すのはもったいないなあ、継承で何とかできないかな、と思ったんだけど、 試行錯誤したところ、やっぱりダメでした。全体を書き直すしかないみたい。
>>506 configにかかないで、loggingインスタンスを
ソースの中でつくって、handlerをセットすれば
SMTPHandlerの継承でいいんでないかい。
とおもいますけど。configfileは、docにあるように
名前空間のなかでevalするらしいです。
>>467 >継続とは結局、
>・現在実行中の環境を凍結、保存
>・保存した環境を呼び出して復活
>する機能のことで、その応用範囲は大変広い。
すみません、よくわかってないんですけど、ここでいう「環境」って具体的に何ですか。
Schemeででてくるんですけど、「環境」という抽象的であいまいな言葉で説明されるから
なんのことやらさっぱりわかりません。
ローカル変数は「環境」とやらに含まれる?
スレ違いですけどもし興味のある人いたら教えてください!
>>507 いや、継承で行けることは分かっているんです。
ロギングの環境設定ファイルは、名前空間loggingの中でevalされますから、
SMTPHandlerを継承した新Handlerクラス 例えばHogeHandler をどこかで作っ
た後、
logging.HogeHandler = HogeHandler
を実行してやればいい。
こう書けば、環境設定ファイルの中ではHogeHandlerとだけ書けばこれが指定
されます。
自分が考えていたのは、このHogeHandler の emit()メソッドを実装するに当
たって、その内部でSMTPHandler.emit()を呼び出すことで、書くべき行数を減
らせないか、ということでした。
で、結論は「無理」と。SMTPHandler.emit() をHogeHandlerに全部コピペして、
それを修正する以外にない、ということでした。
だったら、
>>502 のやり方でもおんなじだし、むしろ502の方がいいかな、と。
>>508 > ローカル変数は「環境」とやらに含まれる?
含まれるよ。
そうでないと、Pythonでyield文が実行されたあと、次に呼ばれたときに、続
きの行から実行を再開することができないだろう?
ローカル変数の値が保持されてなかったら、続きじゃないよ。
どうもです。
>>509 そのページは読んだことあるけど、さっぱり理解できませんでした。
みなさん頭いいんですね。
アセンブラわからないと継続は理解できないってこと?
>>512 「継続」には、ローカル変数以外には何が必要でしょうか。
> アセンブラわからないと継続は理解できないってこと? わかんなくてもいい。私も知らない。だけどスタックとレジスタは知っておか ないと分かりづらい。 継続って要するに、復帰の順序が固定されてない(LIFOじゃない)、ランダムに 何度も呼び出せるスタックだから。 > 「継続」には、ローカル変数以外には何が必要でしょうか。 基本的には全部。 要するに、ある箇所で停止したプログラムを再開させるのに必要な情報すべて。 ・実行箇所 ・ローカル変数 ・ネストしたスコープと、その各々に存在する変数と値。 Schemeの場合、グローバル変数の値は保持されない。すまんがPythonは知らない。 多分大きく違わないと思うけど。
>>513 ここ最近紹介されたURL全部読んでるか?
>>514 いやいや、スタックもレジスタも知らなくていいでしょ。
高水準言語レベルで説明できるし。
>>516 そんなもんかな。うん、私が古いのかも。
スタックとレジスタの説明で、分かる人にはすぐ分かるんだけど、知らないと
つらいかな。
そのレベルで話をするなら、それこそ処理系依存ということになるのでは?
そうかもしれない。あくまで例えで出したつもりだったが、もうスタックには こだわらないことにするよ。
あと、アドバイスをするとしたら、
・継続の理解には時間がかかることを覚悟しよう
恥ずかしながら、私の場合は納得するまで、断続的に1ヶ月ぐらい考えたと思
う。最初は
>>509 のリンク先も全然分からなかった。
他の人はこんなにかからないだろうけど、リンク先の著者のShiroさんも、けっ
こう理解に苦労したと言っていた。まあ気長に行くのがいいんじゃないかな。
試験対策ならご愁傷様だけど。
・Pythonのジェネレータの仕組みを考えてみる
せっかくPythonを知っているのだから、なぜyieldの続きから実行を再開でき
るのか考えてみよう。結局、「その箇所で保存された継続を呼び出している」
ことに思い当たるんじゃないだろうか。
一瞬で理解できた俺は天才なのか
そうかも知れんね。いや真剣にうらやましい。
523 :
521 :2006/08/18(金) 22:49:56
>>467 読んで、IBMのdW読んだら、何の疑問も無く理解できたんだけど、
俺ひょっとして何もわかってなかったりするのか?
PythonにRuby gemsみたいなのはありますか?
Ruby gemsってなーに?
PerlでいうPPMだな<RubyGems
>>523 いや、分かってると思うよ、十分。
私はSchemeで学んだから、継続そのものの概念と、それのScheme内部での位置
づけ(要するに、継続がラムダ関数の一種となっていること)とを同時に理解
しなければならなかった。そのせいで敷居が高かったんだな。
>>526 ん、RubyGemは、Perlで言えばCPANかな。
パッケージマネージャで、ネット経由でパッケージのインストールや更新が出来る。
Python初心者なので、似たようなものがあるかどうかは知らない。
かぶった orz
yieldは本当に必要なんだろうか。 クロージャとどう違うのかいまいちわかんないなぁ。 ま、動くからいいか^^
>>531 そっちじゃなくて Python EGGs じゃないか?
>>532 すまんが何を言っているのか全然分からん。
Pythonのすべての関数は基本的にクロージャだし、
その関数の中で、yield文を持つものがジェネレータだよね?
Rubyスレより盛り上がってね? いよいよPython来たか
いきなりレベルを下げてみるテスト。1/3と1.0/3と1.0//3はすべて違うのに 確か次のバージョンで、どれかが無くなるんだよね。いいのかなー。
>>537 今のうちから、from __future__ import division をして、既存のコードの動
作を確認するのだ。
しかし、ユニットテストでも組んでおかないと、やっぱり大変だよね。
ちなみに 1 / 2 => 0 だったのが、0.5になるように。
これがデフォルトになるのはPython3から。
>>> from __future__ import division
>>> division
_Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)
Python3っていつ頃出そうな感じですか?
Python 2.5 rc1
w
PythonのCPANみたいなもんか、 パイパンと呼ばれないことを希望したい。
>>542 ttp://www.python.org/dev/peps/pep-3000/ Timeline
We need a meta-PEP for the Python 3000 timeline. At this moment, I hope to have a first alpha release out sometime in 2007; it may take another year after that (or more) before the first proper release, named Python 3.0.
PEP位嫁
546 :
デフォルトの名無しさん :2006/08/19(土) 23:50:50
Python3000ってことは94年後にリーリスされるってことか?w 3000とかってFortran 3000水準を思い浮かべてしまう
2100?
*args、**argsの仕様ってなんぞや。 sys.argv[1:]の別名らしいんだけど、リストの頭に\*なんて付けていいもんか。
>>> def to548(a, b, *args, **kwargs): ... print a, b, args, kwargs >>> to548(1, 2) 1 2 () {} >>> to548(1, 2, 3) 1 2 (3,) {} >>> to548(a=1, b=2, c=3) 1 2 () {'c': 3} >>> to548(1, 2, 3, d=4) 1 2 (3,) {'d': 4} >>> to548(1, 2, *(3, 4)) 1 2 (3, 4) {} >>> to548(1, 2, **{'d': 3, 'e': 4}) 1 2 () {'e': 4, 'd': 3} >>> to548(1, 2, *(3, 4, 5), **{'f': 6, 'g': 7}) 1 2 (3, 4, 5) {'g': 7, 'f': 6}
みんPyが書泉でフライングしてたから買ってきた.
内容の方はどんな感じですか
>549 自動的に欲しい形(タプル、辞書)を探して、合致したものがあれば格納するのね。 便利な使いどころと厳密な仕組みはまだ分からないけど、*と**付き書式が 正当なものだってことを知れた。ありがとう、これ難しいねえ。
>>550 prologのインタープリターな処理系探してたので、参考になりました。
というかGETしました。
先生と生徒の自演形式がキモイですね(
Dr.Dとつぐ美でいいだろ
影と編さんはどうしたw
なにこの展開
eazy_installしたモデュールだと、 help(mechanize)ってな感じでできないんですかね WindowsError: [Errno 3] 指定されたパスが見つかりません。: u'X:\\path_to_packages\\mechanize-0.1.2b-py2.4.egg\\mechanize/*.*' と言われるのだけども。非winだと素直にみれる? まあ、egg展開すりゃいいんだろけど……
ふつーにみれますよ
ふつうにみれなかった
563 :
デフォルトの名無しさん :2006/08/23(水) 00:03:06
スクリプト内で下のような関数を何度も呼び出して 追加ダウンロードをしているのですが netstat で見ると CLOSE_WAIT が大量に残ってしまいます。 スクリプトを終了するとすべて消えてくれるのですが どう直せばよいのでしょうか? def urlget(url, file): if os.path.exists(file): dst = open(file, "ab") size = os.path.getsize(file) else: dst = open(file, "wb") size = 0 req = urllib2.Request(url) req.add_header("Range", "bytes=%d-" % size) try: src = urllib2.urlopen(req) dst.write(src.read()) src.close() except: pass dst.close() return os.path.getsize(file) - size
>>563 あてずっぽうだけど、dst.close()のあとにdst=Noneをいれるとか
>>564 dstは明らかにローカルファイルだから関係無いだろ。
>>563 dst.write(src.read())
の行で例外が起きたら、src.close()が呼ばれないぐらいしか思いつかん
>>564 >>565 下のようにしてみましたが状況は変わりませんでした。
dst=Noneを入れても同じでした。
def urlget(url, file):
if os.path.exists(file):
mode = "ab"
size = os.path.getsize(file)
else:
mode = "wb"
size = 0
req = urllib2.Request(url)
req.add_header("Range", "bytes=%d-" % size)
try:
src = urllib2.urlopen(req)
except:
src.close()
return 0
try:
tmp = src.read()
src.close()
except:
src.close()
return 0
dst = open(file, mode)
dst.write(tmp)
dst.close()
return os.path.getsize(file) - size
まずは OS を晒せLinux 2.4 系だったら無害だからほっとけ
WinXP SP2 の Cygwin 版 Python 2.4.1 です。 無害か有害かはわからないのですが 気持ち悪いのでできれば解消したいなと思いまして。
Windows2000 で
>>566 やってみた。
urlget を呼んだ直後は CLOSE_WAIT
Python 終了させずに少し待つと CLOSE_WAIT が消える。
あれ、おかしいな。 俺のWin2kだとなぜかFIN_ACKが溜まるぞ。 GETリクエストに Connection: close 入ってるから 鯖側から切られるんだよな? TCPの詳細を見ると、 データの転送が終わったら、いきなり FIN+ACK が飛んで来て それにACKを返して終了。 なんじゃこりゃ?
571 :
569 :2006/08/23(水) 01:36:37
(補足)Windows2000 の Python 2.4.2 cygwinのではない
socket.setdefaulttimeout() でも、あらかじめセットしておけば 消えてくれるんじゃないでしょうか。
urllib2.Request の前に socket.setdefaulttimeout(10) を入れてみましたが変化ありませんでした. Linux 2.6.12.6/Python 2.4.3 でも試しましたが 同じように CLOSE_WAIT だらけになりました.
元質問者じゃなくて通りすがりで気になったんですが CLOSE_WAIT が溜まるとどんな問題が起きるんでしたっけ? っていうか放置すると悪いの? >567 Linux 2.4系の known bug ってことでしょうか?
>>573 勘違い鴨だけど urllib2 は HTTP の接続をちゃんと閉じてない希ガス。
試しに以下のようなコードを入れてみたらどーでしょ。
class HTTPHandler(urllib2.HTTPHandler):
def http_open(self, req):
return self.do_open(self.http_class, req)
def http_class(self, host):
self._conn = httplib.HTTPConnection(host)
return self._conn
def close(self):
self._conn.close()
#print "closed"
handler = HTTPHandler()
urllib2.install_opener(urllib2.build_opener(handler))
def urlget(url, file):
:
handler.close() # XXX
return os.path.getsize(file) - size
Windows XP で試してみた。
urllib2.AbstractHTTPHandler.do_open の下の方の r.recv = r.read が原因らしい。
循環参照問題が起こっているらしいので f.fp._sock.recv = None を入れるか
gc を使えば CLOSE_WAIT は残らなくなった。
(urllib.urlopen の戻り値 == urllib.addurlinfo,
urllib.addurlinfo.fp == socket._fileobject,
socket._fileobject._sock == httplib.HTTPRequest)
from urllib2 import urlopen
import gc
url = "
http://www.yahoo.co.jp/ "
for i in range(3):
f = urlopen(url)
#f.fp._sock.recv = None
f.close()
gc.collect()
raw_input("...")
577 :
576 :2006/08/23(水) 15:22:20
socket._fileobject._sock == httplib.HTTPRequest => socket._fileobject._sock == httplib.HTTPResponse
class X: def __del__(self): print "deleted" def recv(self): pass x = X() x.read = x.recv del x raw_input("...") でも確かに削除されないね。なぜこれで循環参照になるのか誰か教えて。
x.recv が返すのはバウンド(束縛)メソッドだから im_self で x の参照を持っている。 >>> x.read = x.recv >>> x.read.im_self is x True だから参照カウンタは 0 にならない。 # x の参照カウンタ +1 => 1 x = X() # x の参照カウンタ +1 => 2 x.read = x.recv # x の参照カウンタ -1 => 1 del x
580 :
578 :2006/08/23(水) 17:48:02
581 :
デフォルトの名無しさん :2006/08/23(水) 19:33:45
みんなのPythonを買ってみたけど・・・ ぐぐってみつかるようなHPと大して変わらないんじゃないこれ?
>>575 これやってみようと思いましたがうまく動きませんでした。
たぶん urllib2.urlopen() で例外が発生しているようなのですが
>>576 で解決したのでそれ以上追求してません。
>>576 urlget の中で return の直前に gc.collect() を入れることで
CLOSE_WAIT が残らないことを確認しました。
これでスッキリしました。ありがとうございました。
>>581 はじパイに比べるとどんな感じ?
あの冗長さが少しでも軽減されるのであれば、存在価値はあるかなって感じ。
つか、ググって見つかるようなHPは内容が網羅的じゃないでそ。
損したと思った奴は、周りに布教する時に渡してみるといいんじゃね?
俺の近所のBookoffに売ってくれw
そもそもココにいるレベルのやつは主対象ではないでしょ。 著者も比較的近くにいると思うし、良い点、改善すべき点を挙げていったほうが建設的なんじゃまいか。
でもさ、Pythonの本書くのって難しいそうじゃね? 初心者向きの言語ではあるけど、まったくのプログラム初心者が いきなりPythonからプログラミング言語を学び始めるとは思えないし、 かといってPerlなんかから流れてきたある程度プログラム書ける 人もいるわけだし、誰を基準にして書いていいかわからんじゃないか。 はじPyはどういう人でも参考になるって意味じゃ、いい本の部類に 入るんじゃないか。確かに冗長すぎるとは思うけど。というか、初めから 読み進めると挫折しそうだ。。。
>>588 はじパイは進め方がまるっきり「講義」だよね。
出席することを前提として、カリキュラムの中に復習を盛り込んでる。
>初心者向きの言語ではあるけど、まったくのプログラム初心者が >いきなりPythonからプログラミング言語を学び始めるとは思えないし、 もう、そういう時代になったっていいじゃないか 大学のプログラミング入門的コースで python 使ってるところは あるって話だし
184ページのPyKfがURLの囲みじゃなくてコードの囲みになってるよ。
今年の四月からプログラミングの勉強始めた身だけど 学校でやってる言語とは別に独学でPython勉強してるんだ まだまだ全然だけど勉強するのは楽しいよ はじパイ持ってるけどもあの本はプログラミング初心者にもいいと思う かなり内容が詰まってて、読み進めるだけでも時間かかっちゃうけどそれがいい 何より数ある言語の中からPythonを選んだ理由は 可読性の高さを重視するって辺りに惹かれた 書けば書くほど自分の手札が増える言語なんて素晴らしいじゃない まあ、偉そうな事は言えないけども、はやく住人達と肩を並べられるくらいになりたいな
基本的に薄い本は「プログラミングの初心者」には勧めたくないな。 そういうのを選ぶ人の気持ちはわからないこともないが、良くてわかった気になるだけだろう。 恥パイくらいのボリュームをきちんと読めない奴はどうせプログラムを書けるようにはならない と思うよ。
つーか、本自体必要ないし
スクリプト言語なんだから、素早く書ければそれでいい。 だからリファレンスで十分。
みなさんモテなそうですね
Pythonのリファレンスって調べづらい、と思ったことない?
燕雀安知鴻鵠之志哉。
>>599 よしよし
誰もキミのことを分かってくれないんだね
おれ北冥の魚
もてなそうですね
おれ大村鯤
焚書愛好会のHPへようこそ はじめてのPythonだけは別格ですのでご注意ください。
文字列の先頭と、'_'の直後の文字のみ大文字化 (例: 'foo_bar' => 'Foo_Bar') って、Python でどう書くの?
自己解決しました
どうせならソースを貼っていってください。
ruby なら gsub(pattern) {|matched| ... } つかえば 簡単な話なんだけどねぇ。 python では難しいね。
Pythonチュートリアルの日本語約で十分でないかい。
難しいか?
612 :
606 :2006/08/24(木) 10:46:05
>>607 は私ではないので、
やりかたご存じの方がいらしたら教えてください。
チュートリアルってヘルプに付属のは見ましたが、
今回のパターンに外とするのはなかったようです。
string.join( map( string.capitalize , s.split("_") ),"_" )
614 :
606 :2006/08/24(木) 10:52:07
なるほど。 助かりました。
これでも出来る >>> import string >>> string.capwords("foo_bar", "_") 'Foo_Bar'
キーと値の配列の配列があったとき、 最長のキーの長さを求めるにはどうしたらいいでしょうか? データはこんな感じです↓ data=[ [ 'key1', 'value1], ['key2','value2'], ....]
>>616 dictじゃなくってなんで配列なんだろう?
max([len(p[0]) for p in data])
チュートリアルは悪くないが、フツケルみたいに本屋に平積みされて予備軍の目を引いたりはしない。
>>606 これでもOK
import re
s = "foo_bar"
print re.sub("[^_]+", lambda m: m.group(0).capitalize(), s)
>>610 あれは翻訳がひどい。
英語で読んだ方がマシ。
みなさんモテないでしょう?
data.sort( reverse=True , cmp=lambda x,y: cmp( len(x[0]), len(y[0]))) print data[0] <- 一番長い奴。
鬱な奴とか ダメ人間が 根拠もなく否定的な書き込みするだろ するともっと鬱になって さらに否定的な書き込みを繰り返すんだ それが2chさ
>>
ttp://coreblog.org/ats/scbscriber-of-coreblogml > 「インストール方法」みたいな低ーーーいところとか,「落ちている物を拾って使います」的な乞食みたいな思想から抜け出せないのでは危ないと思います。
> 趣味で使うならいいんだけどね。しかしまあ,趣味の延長ではおいしい物食べられないし,車とかプラズマテレビは買えない(笑)。
で、初心者騙しの本書いて印税搾取かよ。
こいつ、言ってることと、やってることとが乖離してるね。
いい趣味をお持ちのようですなw
>>626 文脈を無視した引用をする君の趣味のほうがキチガイじみている
ここはちいさなとかげのいっぱいいるすれですね
すいませんが 出版関係者と作者の方へ。 荒すな。
落ちている物→Plone 拾って使います→COREBlog2
落ちてる物を <- Python 拾って本を書いて <- みPy 調子こいてるよね。 <- 「落ちている物を拾って使います」的な乞食みたいな思想
ぼかーん
母艦?
わざわざ自分から、気狂いの多い所にやってきて 宣伝することないし 好意的じゃなかったからって 荒さなくてもいいよね。 Pythonの話にもどろうよ。
そうだな。またデザパタの話でもしてなごもうぜ。
はじパイは50日かかった。まだ宿題は終わってない。 PHPにもRubyにもPerlにも勝った気がする。 CPANが羨ましくはあるけれども、CもJavaもお友達に見えてきた。 夏休みに最適な「はじめてのPython」をどうぞ。
>640 はじめてのPythonの宣伝はいいんだけど… 文章が小学生レベル いい年した大人でそれなら頭おかしい
で、みんなのPythonはいい本なのか?
>>638 >わざわざ自分から、気狂いの多い所にやってきて
>宣伝することないし
けだし至言。
645 :
点取り占い :2006/08/24(木) 18:34:34
キチガイ観察は面白いな(WWWWW
あの... そろそろPythonの話題を... 頭のおかしい人は放っておいて...
デコレータって何が便利なのかピンとこないのですが、 具体的にどんな場面で使うと便利なんでしょう?
Python に関するドキュメントは レイモンドの駄文 ↓ 公式ドキュメント(特にライブラリリファレンス) ↓ Dive ↓ ソース解読 で充分。はじPyとかは不要。読む時間の無駄。
みんなのPython、amazonで表紙買いしたけど、超期待はずれ orz やっぱり本屋に行って、中身を見て買わないと駄目だね。
うは(www すごい粘着(wwww これはモノホンのガイキチだわ(wwwwww
みんPy評判悪いなぁ。 良かったって奴はいないのか?
読んでないから分かりません。 厳密に言うと、読むに値しない本だと判断したので、どうでもいいです。
田舎だとまずPythonの本なんて置かないからなぁ。 はじPyだって通販で買ったしさ。。。
657 :
649 :2006/08/24(木) 20:57:20
>>656 でもclassmethodやstaticmethodなんて、めったに使わないですよね。
事実、標準ライブラリをgrepしてもほんの2、3モジュールでしか使われてないし。
>>657 >でもclassmethodやstaticmethodなんて、めったに使わないですよね。
そうだね(w
CherryPyとかTGのコントローラにつくっくexposeとか見てみれ
テンプレート指定とかパリデーションチェックにつかっとる
659 :
581 :2006/08/24(木) 21:03:31
誰も Python の解釈本なんて欲っしてないし。 適当に使っていたら自然と分かるようになっているし。
またモテなそうなひとたちが…。
>659 やっぱり本物だったみたいだね. ありがとうございました.
663 :
581 :2006/08/24(木) 21:31:18
>>653 みんPyはまだ手にとって見てないんだけど、
たぶん入門書の利用者層ってのはこのスレの住人とは違う層なんだと思うよ。
集団がほとんどオーバラップしてない希ガス。
俺は先に標準チュートリアルを読んで後から入門書も読んだ口だけど、
入門書が不可欠だったかと問われたら答えは No だ。
Python を使い始めた頃にはネット上の文書やソースコードから情報を得る
すべを心得ていたからね。
しかし、だからと言って入門書の存在意義を否定したりはしない。
入門書が必要な利用者層というのは絶対居る(さもなければ本は出版されない)し、
ネットやソースコードに分散した情報を探しまわる時間コストを考えたら
手っ取り早くまとまっている本を買った方が安上がりということも大いにあり得る。
俺にとって入門書は無価値だったかと問われたら、これも答えは No だ。
通読して下線を引きまくって付箋だらけにした入門書というのは
手になじんだ道具みたいなもんで、他のリソースとは別の次元で便利だった。
まあ、買った本がクソだったら悪し様にいいたくもなるだろうけど、
どうせなら具体的にダメなところを指摘しようよ(もちろんイイところも聞きたい)。
∧_∧ ( ・∀・) ( 建前 ) | | | __(__)_)______________ ( _)_) | | | ( 本音 ) ( 。A。) ∨ ̄∨ __∧________ 他人が必要としているものを作って売るのがアントレプレナとゆー人種なわけで、 自分にとって不要なものに価値を見出すことを知らないどこぞの誰かさんは いつまでたってもいいように搾取され続ける哀れなプロレタリアなんだろうなあ。
なんだかんだいって、 買わせようと誘導か。 指摘してやるから、PDFでくばれよ。 でも、本の内容云々じゃなくって 関係者が2chのPythonスレを荒してるのが まず買わない理由。
670 :
デフォルトの名無しさん :2006/08/24(木) 21:49:01
ほとんど本が出てないからって誰でも本を出せば売れると思ってない?
671 :
664 :2006/08/24(木) 21:52:23
俺は関係者ではないよ。言っても無駄だと思うが(笑
┌─────────┐ │ 基地外警報!!! | │ 基地外警報!! | └―――──――――┘ ヽ(´ー`)ノ ( へ) く
つか、本のダイキンくらいで「搾取」とか言ってる貧乏人に驚くよ おまえはマルクスかっつーのw
>>673 ×ダイキン
○代金
エアコンスレに出入りしてるな
>>663 >指摘してやるから、PDFでくばれよ。
>でも、本の内容云々じゃなくって
>関係者が2chのPythonスレを荒してるのが
>まず買わない理由。
買ってないみたいだから(wwwww
オマエは蟹工船か。
>>673 ヽ|/
/ ̄ ̄ ̄`ヽ、
/ ヽ
/ \,, ,,/ |
| (●) (●)||| |
| / ̄⌒ ̄ヽ U.| ・・・・・・・・ゴクリ。
| | .l~ ̄~ヽ | |
|U ヽ  ̄~ ̄ ノ |
|  ̄ ̄ ̄ |
677 :
581 :2006/08/24(木) 22:08:18
俺は他のページと変わらないって書いてるだけで、酷い本だといってるわけじゃないよ? どんな感じの本かを伝えてるだけじゃないか。 まあ、他の人はかね払う価値が無いとか書いていて、それはそれでもっともだと思うけどさ。 被害妄想なんじゃないの?
>658 >でもclassmethodやstaticmethodなんて、めったに使わないですよね。 そうだね(w ちゃんと答えてやれば。 ところでclassmethodとstaticmethodの違いって何?
>>677 ,j;;;;;j,. ---一、 ` ?--‐、_ l;;;;;;
{;;;;;;ゝ T辷iフ i f'辷jァ !i;;;;; 本の感想を伝えたい
ヾ;;;ハ ノ .::!lリ;;r゙
`Z;i 〈.,_..,. ノ;;;;;;;;>
,;ぇハ、 、_,.ー-、_',. ,f゙: Y;;f そんなふうに考えていた時期が
~''戈ヽ `二´ r'´:::. `! 俺にもありました
676 = 677 = 678 乙。
ちいさなとかげはひとりぼっち とうとう切ってすてるしっぽもなくなってしまいました
682 :
581 :2006/08/24(木) 22:14:44
>>679 期待して間違って買っちゃったらかわいそうじゃない。
>>678 classmethodは第一引数にクラスオブジェクトが渡される…だけかな。
>>680 /\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:|
| ,,ノ(、_, )ヽ、,, .::::|
. | `-=ニ=- ' .:::::::|
\ `ニニ´ .:::::/
/`ー‐--‐‐?´\
みんPyごときでスレが伸びる原因は、作者が混じってるから。
自分の本でもないのに、否定的意見を言う奴にキチガイ認定するなんて、 考えられない。つまり、著者降臨。
pythonの話しようぜ! 今日仕事中偶然pyISAPIeの存在を知って早速試してみた。 結構簡単にIIS+Djangoに成功! いいねこれ! クソ営業が今度Windowsサーバの案件持ってきやがったら次はコレだな!
/\___/\
/'''''' ''''''::\
|(●), 、(●)、.|
>>687 さん
| ,,ノ(、_, )ヽ、,, .:|
| `-=ニ=- ' .:::::|
\ `ニニ´ ._/
(`ー‐--‐‐?/ ).|´
| | ヽ|
ゝ ノ ヽ ノ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
/\___/\
/'''''' ''''''::\
|(へ), 、(へ)、.| ふふ、呼んでみただけ♪
| ,,ノ(、_, )ヽ、,, .:|
| `-=ニ=- ' .:::::|
\ `ニニ´ ._/
(`ー‐--‐‐?/ ).|´
| | ヽ|
ゝ ノ ヽ ノ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
キチガイ粘着してるから真面目に書いても仕方ないのかもしれんけど 本屋でチラ見してきた 「とりあえず python の本」という向きには良さそうだし 文字コード関連とか日本で使う人が気にする点についても (多くはないけど)記述はされているし、いいんじゃないですかね。 # 自分の思う通りの本(←あるのか?)以外は全て叩こうっていう人は # 一体何をして生きているのやら…
\|/ 本 〜〜〜〜 ー○ー ↑| Python / | \ ↑| ↑ |/ とりあえず ↑  ̄ ◎ \|/  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ みんPy
>>690 金は多少掛かってもいいから手間をかけずにPythonをざっと理解したい、という他言語経験者向けには良い本じゃないかな
純粋な「プログラミング初心者」には薦められないけれども
始めまして。 web系の開発ですが最近pythonを始めたものです。 質問があります。 ----------------------------------- ・ <!--tagST-->文字列<!--tagED--> <!--tagST-->文字列2<!--tagED--> ・ ・ ・ ------------------------------------ 上記のような文字列からタグに囲まれている文字列を抽 出し置換していきたいんですが、正規表現でやるにしてもpythonだと perlみたいに$1(だっけ?)みたいにして値を取れないですよね? 何かよい方法はがあれば教えていただけませんでしょうか?
>>964 自分で自分の質問に答えたりして(wwwwwwwwwwwwww
697 :
694 :2006/08/25(金) 00:58:22
今調べてたんですが、python.jpにそれっぽいのが載ってました。 正規表現で()が使えて.groupで抽出できるみたいですね。 全く間違ってたら恥ずかしいですがもうちょい見てみます。他によいやり方 があれば教えてください。
from sgmllib import SGMLParser import string class Parser(SGMLParser): comment_tag = [] temp_str = "" start = False def __init__(self): SGMLParser.__init__(self) def handle_data(self,data): if self.start: self.temp_str += data def handle_comment(self,comment): if comment == "tagST": self.start = True self.temp_str = "" elif comment == "tagED": self.start = False self.comment_tag.append( self.temp_str ) def getlinks(self): return self.comment_tag parser = Parser() parser.feed(data) parser.close() tags = parser.getlinks() for n,x in enumerate(tags): print n,x
作者自らの宣伝必死だなw
プラズマテレビが欲しいから 必死なんです。
しかし > 「落ちている物を拾って使います」的な乞食みたいな思想 と言い切ってしまってもいいのかね? オープンソースの完全否定じゃないかw 君の存在意義も否定している。 廃業した方がいいんじゃないのか。
高いレベルにフォーカスして活動。 + 「落ちている物を拾って使います」的な乞食みたいな思想 = 海外のチュートリアルの日本語での焼直し。
高いレベルで活動とか言う前に、自分の低レベルさを認知するべきだね。
自分の低レベルさ -> 宣伝活動が2ch
お亡くなりになった方:禿げS井 もうすぐお亡くなりになる方:工作員S田
はいはい、zope関係者は すれ違いですよ。 帰って、帰って。
708 :
694 :2006/08/25(金) 01:49:26
基地外って面白いな もっとやってよ(WWWW
類は友を呼ぶ。 既知害に既知害が群れる。
>>710 /\___/\
/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < ま〜た始まった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐?´´\
>>712 つまんない 10点
つか、本なんて嫌なら買わなきゃいいだけだってことに気がつけよ
著者、信者(?)ウザイな。 もういいだろ。
アンチがあまりに頭悪いこと書くのでわか信者が急増中のようだ。 これが宣伝手法だったら凄いよな。w
裾野が広がるとDQNも増えるっちゅーことかな。 そろそろ別のマイナー言語に移る潮時かも知れず。
うわー、なんか気持ち悪い流れに・・・
えー、みんなのPython昨日Amazonでポチってしまった。 このスレ読んでおけばよかった・・・orz
急にAAが増えた件について。
>720 いやべつに読んでも結論は変わらないだろ (このスレを読まない方が良かったということならまあ同意だけどナ)
あなたが誰だか分かっちゃった 世の中狭いからね キチガイ呼ばわりの荒らしじゃかなうわけないよね がんばってね
今日はなんて、パンソン日和だこと。
パイ○ン大好き。
COREBlogの中の人は調子に乗ってるけど、この人、実績皆無なんだよね。 スクリプトキディーが喜んでるようにしかみえない。
Pythonの入門書が出るのが気に入らない人たちがいるようですね。
どんな内容なのか引きこもりの俺に教えろ
ぼくは他人にすぐ噛みつき 私怨でスレを荒らしてキチガイ判定されるような性格の持ち主なんだけど なぜだかともだちができません. Pythonで友達をつくるスクリプトはどう書けばいいですか?
>>>
>>729 .make(friend)
Traceback (most recent call last):
File "<stdin>" line 1, in ?
SyntaxError:
>>626 なんでみんPyの著者は、自分の写真としてアーティストの「柴田淳(女性)」を
のせてるんだろう?
頭おかしいのかな?
>>729 Pythonはself大好きの自己中用言語です。
おひきとりください。
俺はthis派
>>733 本当だw
頭おかしいとは言わないけど、ちょっとズレてるよねw
>>729 import life
life.exit()
self.pleasure()
impo rt
一時期のRubyスレのような様相ですな。 # Rubyスレは今は宗教ネタでひどいことになっとりますが。
逆にノーマークだったみんPyの内容が気になるようになった。
なんで2chでは「宿題スレ」と「お勉強スレ」の微妙なスレしかないのだろう? いわゆる「本スレ」はなぜ存在しないのか?
マイナー言語だから「勉強」と付けざるを得なかった。それだけのこと。 加えて、「分家」が存在するので本スレとして一本化することは現実的でない気もする。 特に Zope とか Zope とか Zope とか
Zopeみたいになるから、 スレに商売っ気持ち込まないで欲しいね。
何故にZopeが忌み嫌われているのか、理解不能。
ダメだ、一番分かりやすく解説してくれていることだけは伝わるサイトでも、 なかなか理解して頭に入っていかない。 原始的だけどサンプルコード真似して、ひたすら手打ちするっきゃないんか。
体動かさなきゃ覚わらないよ
>>747 ひたすら手打ちして、「手に覚えさせる」をやらないと、先に進めないよ
みんPyを枕にして寝ろ
はじPyの方がいい夢がみれるかもしれん
そうだな。 みんpy買え。
他の言語経験済みなら、チュートリアル読んで数十分もあれば とりあえず組めるようにはなると思うがなぁ。対話モードで実験もしやすいし。
>>754 「思うがなぁ」って、本人が出来ないといってるのに。
馬鹿ですか?
756 :
デフォルトの名無しさん :2006/08/25(金) 22:26:10
758 :
デフォルトの名無しさん :2006/08/25(金) 22:31:23
自分が数十分でとりあえず組めるようになったのを報告したいんですよ。誰かに。
普通に盛り上がってきた キチガイありがとう(w
760 :
デフォルトの名無しさん :2006/08/25(金) 23:42:59
>>756 対話モードで実験がしやすいことは、大抵のチュートリアルで説明されてるよ。
みんPyについて。guidoの寄稿を貰っているところに日本人によくある劣等感をみた。 なんとしても箔を付けないといろんな意味での自信が無いという情けないメンタリティーのことね。 裏を返せばそのようなどうでもいいステイタス頼りの内容なんて形骸化著しいと言わざるを得ない。
┌─────────┐ │ 基地外警報!!! | │ 基地外警報!! | └―――──――――┘ ヽ(´ー`)ノ ( へ) く
まあインタプリタは逃げも隠れもしないから 気長にやれや
>>761 /\___/\
/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < ま〜た始まった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐?´´\
>>761 なんでも批判的なことを書くとかっこいいと思うお年頃の子ですか?
才能が無い俺が余計なことを言ったから荒れたんだな。 すまんね。ひたすら手仕事に励むよ…。だからまったりしてくれ。
∧_∧ ( ´・ω・) みなさん、お茶が入りましたよ・・・・。 ( つ旦O と_)_) 旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦
768 :
デフォルトの名無しさん :2006/08/26(土) 01:22:03
AAが増えた件について。
グラフィカルです。
ボクは他人にすぐ噛みつき 私怨でスレを荒らしてキチガイ判定されるような性格の持ち主なんだけど 文章力は小学生レベルです. Pythonで書籍を書けるようになるスクリプトはどう書けばいいですか?
>>771 そんなことありません。基本的に持ち込み原稿は大歓迎です。
皆様よろしくお願いします。
出版するよりも自前サイトで公開する方が簡単だし禁則事項ないし。 銭なんていらんよ。誰かさんみたいに必死になってるのって見ていて哀しい。
>>761 まわりをよく見てごらん。
Guidoパパに推薦文を書いてもらっているのは日本人ばかりじゃないよ。
[Python-Dev] Removing anachronisms from logging module > (*) I found an example of code testing "if string.find(s, t) != 0", > thinking it was a bug attempting to write "if t in s", but which Vinay > identified as a 1.5.2 idiom for "if not s.startswith(t)"... それスゴイ
印税なんかに嫉妬してる馬鹿がいるのか・・・
>>773 とか恥ずかしいな
どんなに人気のプログラミングの本でも2万が精々って話だぜ?
それで印税計算してみろよ。行って数百万円ぐらいだ。
しかもPythonってマイナーな言語だ。30万円入るかも怪しいもんだ。
印税が欲しければ自分で書けばいいのにね
778 :
デフォルトの名無しさん :2006/08/26(土) 18:55:23
>>776 何万部売れて、いくら印税が入ろうが知ったこっちゃ無い。
数千円払って糞本つかまされる身になってみろ。
>>778 数千円くらいでがたがた言うなら立ち読みでもして確かめてから買えよ
いいかげんうざいぞ
ウザいから、荒すなよ > 駄本関係者
781 :
デフォルトの名無しさん :2006/08/26(土) 19:23:34
しばらくの間みんPyの話は避けてくれないかな、変なのが沸いてくるから。
783 :
デフォルトの名無しさん :2006/08/26(土) 19:42:21
否定的意見を言う奴は、全員「変なの」ですか。 著者乙。
>>783 >>778 みたいな内容のないレスする奴は「変なの」に決まってるじゃないか
おまえの「著者乙」も根拠の無い馬鹿レス
785 :
デフォルトの名無しさん :2006/08/26(土) 19:50:18
786 :
デフォルトの名無しさん :2006/08/26(土) 19:51:19
微妙に著者擁護なレスが多いのが気になる。 あんな糞本なのに。
787 :
デフォルトの名無しさん :2006/08/26(土) 19:52:34
自分のことを「しばたじゅんと呼んでください」と言って、女性アーティストの 顔写真を載せる馬鹿なんだぞ。
788 :
デフォルトの名無しさん :2006/08/26(土) 19:53:11
諮らずも "変なの" ばかり涌いて >782 を証明してしまった罠
もう「みんPy」の話題は禁止で。
\ /._, 、--‐―‐--、 ,_ ', \ ,、‐'´::::_,.、--―‐--、.,_::::::::`'-、, / \/:::::::::/ \:::::::::::\ / ,.' .\ \::::/ ! .,イ i! i .i, i ヽ;:::::::::::\/ ,.' . \, Y l. | l.l |.| .li i.l | | ヽ:::::::/ / `'‐-、 ヽ } l l イ‐廾l. l リナ十トリ. レ'/ / _______ | { ヽト,{,ィ=,、 !Vレ/ィ=,、!ィ / / ./ ,r _,/ / \ | |Vヽゝ辷! , .辷!_ノヘ// / /,' / まあまあ お前ら、 ヽ .| ',ゝ_,ヘ"" r‐┐."",イ_ソ / ! < これでも食って一息 | .| ', ヽ!`, 、 ヽ_ノ, ィ'´レ / | ヽ、 つこうぜ♪ / .| ',_,,,,_ノ_ _(_,,,,_/ | \_______/ | .'く `'_., ,._`' / .| | ヽ、 / | | ヽ -‐ ‐‐ / | | ト-‐―-イ ! ぶうっ!| l , l;l , l ,' ぶりぶり | .,、-‐ォ、 ノ i {l} ,.ヽ ,' 'y',//, '.) '、 " ,' / ぶりっ .{_ ィ,'//_ U u_,,,_, }l /___ ヽ_ .ィ,/ノ 'f´;;;;;`i' u ./ ニニ', `‐-へ,_ (:⌒ };;;;r‐;{ ⌒,ヽ /ヽ. ト.二ニ'´ `'ー--};;__;;;;;}---―.'´ `' (⌒ {;;;`、;;;'i ..::)
多分Rubyで類似本が出ても叩かれないと思うけどなあ。 アンチ著者がいるのか、ただの馬鹿がPythonスレに常駐してるのか。
もう「みんPy」の話題は禁止で。
みんPy みんPy って言うと"変なの"を召喚できると聞いてやってきますた。
まだ夏休みな奴がいるんだよ。きっと。
夏休みかどうかなんて関係ないな
だって毎日休みだからな
Ruby は一時期256本出しすぎてイメージ悪くなったからな まともな本ならそりゃ好意的になるわな
みんPy売れてんの? よかったじゃん
というか、Rubyスレの住人がPythonの入門書を叩いている、という可能性はないのか?
>>786 擁護っつーか、普通にPythonの本が増えるのは歓迎するだけ
それに嫌なら買わなきゃいいだけだし
>803 すば洞 +1
まあ もうすこししたら夏休みもおわるし。 そしたら、昼間は静かになるだろう。
9月で夏休み終わるのって高校生まででしょ? 高校生なんてそんないる? まあ、それはいいとして・・・
行ったことあるなら、
>>808 のようには思わないはずなんだけどなぁ
きょう話題のみんPyを立ち読みしてきた 変数とは箱です、見たいな説明があって、「変数知らんやつが対象なのか!」 と思ってビビッた。 次に関数の説明があって、「関数も0から説明するのか!」と思ってビビッた。 パラパラめくってたら、モジュールとかクラスとかの話が出てて、 「え、あそこから始まって、こんなとこまで進むの?」と、思ってビビッた。 初心者が前から読むには粗過ぎる、上級者がリファレンス的に使うには冗長すぎるみたいな本なのかなーという印象(かなり適当
あー、友人皆無だったなら、そう思っても仕方ないかもね
すません、適当に流してください。
そうだな。またデザパタの話でもしてなごもうぜ。
基本のRuby関係は当然として、メタクラス拡張だ継続だと来て そしてみんPyか。いやー、可燃性高いな。実の無い話はうんざり
>>817 といいつつ、何か書かずにはいられないようですね。
作者にかなーり問題があるんじゃね?
ウェブページ見ればいいとかいう人がいるけど、通勤電車で読むことを考えたら本だろ. でも、初めての Python は重い. みんなの Python もちょっと重いけど、全然許容範囲内. ちまちま読み進めて、やっと半分くらい.
821 :
デフォルトの名無しさん :2006/08/27(日) 02:06:51
>820 実物を見たけど、あの分厚い本を電車で読むのは無理があるんじゃ…。 前半の解説は、もっとはしょって薄くしてくれればよかったな。
IDがPYだったのに どうにも証明できないここム板
はじPyが厚くて重いってんなら、1章単位で本を引き裂いて分割すればいいんだ! ぐっどあいであ! とおもったけど、破くのはもったいなくてできん。
ボクは他人にすぐ噛みつき 私怨でスレを荒らしてキチガイ判定されるような性格の持ち主なんだけど 人間性にかなり問題があります. Pythonで人間性を改善するスクリプトはどう書けばいいですか?
import this
>>823 自分は半年くらい迷ったが、こないだ2つに分割した。
とことん読んで身につけなきゃ意味がないと思ったので。
手を動かさなきゃ駄目らしいですよ。
>>824 import life
life.exit()
LL Ring行った奴、レポ希望
Webに載っているプログラム見て、あまり面白くなさそうだったので 今回は不参加な俺のためにも、参加者の人、感想などプリーズ。
831 :
デフォルトの名無しさん :2006/08/28(月) 00:10:58
WindowsXP上で、python2.4のスクリプトをpy2exe(0.6.5)を使って 変換しようとしてるんですが、↓のようなエラーが出て止まってしまいます。 UnicodeDecodeError: 'ascii' codec can't decode byte 0x83 in position 30: ordinal not in range(128) 文字コード関連のエラーのようですので、Shift-JISで書いたスクリプトを Unicodeに変換してみたのですが、更に大量のエラーが出てしまいました。 変換はTeraPadでUnicode, utf-8, utf-8Nに変換してみました。 どうしたら良いんでしょうか???
ファイルエンコーディング指定してる?
833 :
831 :2006/08/28(月) 00:29:24
>>832 レスどうもです。
shift-jisのときは↓
# -*- coding: shift-jis -*-
utf-8の時にはBOM_UTF8と1行目に書いています…。
834 :
831 :2006/08/28(月) 00:34:40
スクリプトはShift-JISで動作を確認していますので、 Shift-JISにしないと動作しない気がするのですが… py2exeがShift-JISを扱えないということもあるのでしょうか?
py2exeを使わないと、動作するの?
不具合の再現性の有るソースでも 貼ってくれればな。
# -*- coding: cp932 -*- はダメか?
838 :
831 :2006/08/28(月) 01:03:51
>>835 ちゃんと動作してます。
>>836 ソースは150行くらいあるので…ちょっと短縮してみます。
>>837 試してみましたが、同じエラーが出ました。
py2exeを使わない場合は動作しています。
PyInstaller を使ってみては?
ElementTreeに関して2点質問があります。 1. root = ElementTree.parse(strxml).getroot() sname = [xxx for xxx in root if xxx.get("name") == 'ああああ'] 上記の場合snameはlistオブジェクトになってしまいます。type=instance にしたいんですがどうすればよいでしょうか。それともコーディングの仕方 がまずいのでしょうか。 2. XML文字列を更新した後それを参照したいんですがどうすればいいで しょうか? DOMみたいに print root.toxml() みたいなことはできないのでしょうか。 ようはXMLを更新して保存したいだけなんですが; もしご存知の方がおられましたらご教授ください。
>>838 >試してみましたが、同じエラーが出ました。
>py2exeを使わない場合は動作しています
Q1: py2exeでビルドして,実行した時に出るエラーですか?
Q2: sitecustomize.pyとかでデフォルトエンコーディングを書き換えていませんか?
if (Q1 is True) and (Q2 is True):
"""
スクリプトの先頭に
import sys
if hasattr(sys,"setdefaultencoding"):
sys.setdefaultencoding(あなたのすきな文字コード)
などとして,デフォルトエンコーディングを指定するか,日本語文字列を入出力しているところを
もう一度しっかり見直して,明示的にエンコーディングせずに出力している部分を直したらどうかな.
参考:
ttp://starship.python.net/crew/theller/moin.cgi/EvenMoreEncodings """
自己解決しました
>> 840 1 sname が内包表記で書かれているから,リストにならない方がおかしい. 2 tostring()
844 :
840 :2006/08/28(月) 02:33:06
1.でちょっと意味分からないこと書いてました。 snameで受け取るのは絶対一つのオブジェクトと決まっています。 sname[0]とすればよいですね。すみません解決です。 2.に関して分かる方がいたら教えてください。
845 :
840 :2006/08/28(月) 02:36:06
>>843 >1 sname が内包表記で書かれているから,リストにならない方がおかしい.
ですよね。夜中のため基地外になっていました。
2.に関してありがとうございます。
>>843 全く本題には関係ないがアンカー貼るならスペースを空けないでほしい
>>845 いまちょっとelementtreeのマニュアル読んでみたけど,root.find('ああああ') でいいんじゃないかな?
848 :
831 :2006/08/28(月) 09:26:21
皆さんおはようございます。
>>839 PyInstallerを使ったら、エラーも無くexeを作れました!
>>841 >Q1: py2exeでビルドして,実行した時に出るエラーですか?
ビルドの途中で出るエラーです。
>Q2: sitecustomize.pyとかでデフォルトエンコーディングを書き換えていませんか?
超初心者なので…そこまでのことはしていません。
エンコーディングは奥が深そうですね。
教えていただいたサイトを読みながら勉強させていただきます。
みなさん、どうもありがとうございました。
超初心者なのにファイルエンコーディングのこと知ってるのね。 偉いね。
以下のテストコードを動かしてリストボックスのアイテムをクリックしても、 2回クリックしないと正しい内容が表示されません。 というか、直前にクリックしたアイテムの内容が表示されているようです。 何がおかしいのか、アドバイスお願いします。 Windows98SE, Python2.4.3 です。
851 :
850 :2006/08/28(月) 11:51:18
import Tkinter as Tk DIC = {'AAA': 'AAA text', 'BBB': 'BBB text', 'CCC': 'CCC text'} class App(Tk.Frame): def __init__(self, master=None): Tk.Frame.__init__(self, master) self.pack() self.listbox = Tk.Listbox(self) self.listbox.pack(side=Tk.LEFT) self.listbox.bind('<1>', self.showtext) self.txt = Tk.Text(self, font=('Helvetica', '12'), width=20, height=5) self.txt.pack(side=Tk.LEFT) namelist = DIC.keys() self.listbox.insert(Tk.END, *namelist) def showtext(self, event): name = self.listbox.get(Tk.ACTIVE) txt = DIC[name] self.txt.delete('1.0', Tk.END) self.txt.insert(Tk.END, txt) if __name__ == '__main__': app = App(); app.mainloop()
フォー!
>>845 >夜中のため基地外になっていました。
(wwwwwwwwww
>>850 俺もよくわかってないけど、bind の部分を
self.listbox.bind('<ButtonRelease-1>', self.showtext)
Tk.ACTIVE の部分を
name = self.listbox.get(self.listbox.curselection()[0])
と書き換えるとそれなりに動いているようだ。ボタンを押したときでなく
離したときに表示されるようになるけども。
855 :
850 :2006/08/28(月) 12:31:03
>>854 素早いレスありがとうございます。
希望通りの動作になりました!
pythonは基地外が使うプログラム言語です。 \ │ / / ̄\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ─( ゚ ∀ ゚ )< 基地外基地外! \_/ \_________ / │ \ ∩ ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< 基地外基地外基地外! 基地外〜〜〜! >( ゚∀゚ )/ | / \__________ ________/ | 〈 | | / /\_」 / /\」  ̄ / /  ̄
みんなのPython読んだら低能乞食になっちゃいますか?
オッス、オラ基地外 基地外だから 感覚が世間からずれてるんだけど 基地外故に ずれていることに気づかねえんだ! ドンドン修行して 世界一の基地外になっぞ!!
スルスルッとスル〜
extensionやらをコンパイルして python2.5にアップデートしたんだけど なんか遅くなったような気がする rpyコンパイルするのめんどうだったなー
ironPythonで使える標準ライブラリ ○ -- sys, time, math × -- fileinput, urllib, os, random, StringIO, md5, sha まあ、 .NET Framework を使えばいいんだろうけど
IronPython使うんだったら、標準Pythonモジュールじゃなくて 積極的に .NET のライブラリを使うほうが良いとおもうけど。
>>863 既存のPythonプログラムを動かせるような環境じゃなさそうだね
まぁIronPythonという別の言語(?)だと思えばいいのかな
Python文法を使えるCLR上で動作する言語の1つでしかないわけだし。 個人的には sys 以外のモジュールは不要。
>869 ( ゚д゚) _(__つ/ ̄ ̄ ̄/_ \/ /  ̄ ̄ ̄ ( ゚д゚ ) _(__つ/ ̄ ̄ ̄/_ \/ /
まあキチガイはスルーしてまったりといこうや.
みんPyなんで叩かれてるんだ? 買ったけど、かなりいい内容だったぞ?
私のことは「しばたじゅん」と呼んで下さい♥ [女性アーティスト柴田淳の写真] ↑ おかしいよね、こいつ。
おっpy2.5
おっPy 3000
スルスルッとスル〜
「基地外叩きゲーム」の会場はここですね?
すみません。初心者です。 文字列をパラメータで渡して整形した文字列を返却するような メソッドを作ったんですが、返却文字列が、 カ ニ イ ヘ カ 韜 カ みたいな文字になって返ってきます。これってもとに戻せないのでしょうか? ネットで調べまわったんですが見つけれませんでした;
>>881 そんなものもったいぶらずにウプしてみろよ。
さっさと解決すると思うぜ?
884 :
881 :2006/08/29(火) 00:43:31
あれ? &#65398; &#65414みたいな文字列です。
キチガイ叩きが始まると、 どこからともなく初心者が現れ、 速攻で返事が書き込まれる件.
柴田淳の画像の件は、正直引いた。
>>882 Amazonのランキングでは大きく負けているわけだが。
Pythonにも中級〜上級向けの本が出て盛り上がるといいな。
>886 ( ゚д゚) _(__つ/ ̄ ̄ ̄/_ \/ /  ̄ ̄ ̄ 図星だったみたいよ ( ゚д゚ ) _(__つ/ ̄ ̄ ̄/_ \/ /  ̄ ̄ ̄
890 :
デフォルトの名無しさん :2006/08/29(火) 01:18:56
pythonは基地外が使うプログラム言語です。 \ │ / / ̄\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ─( ゚ ∀ ゚ )< 基地外基地外! \_/ \_________ / │ \ ∩ ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< 基地外基地外基地外! 基地外〜〜〜! >( ゚∀゚ )/ | / \__________ ________/ | 〈 | | / /\_」 / /\」  ̄ / /  ̄
891 :
デフォルトの名無しさん :2006/08/29(火) 01:27:47
オッス、オラ基地外! オラ ちょっとはPythonに詳しいんだけど 基地外ぶりが上回って さらに頭も悪いので すべてを台無しにしてるんだ! ドンドン修行して フリーザをやっつけっぞ!!
>>890 =891 が使ってる言語が何なのかぜひ知りたいな〜
今後の人生で避けるようにしたいから
キチガイのせいで 夏厨が。。。
>>892 /\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:|
| ,,ノ(、_, )ヽ、,, .::::|
. | `-=ニ=- ' .:::::::|
\ `ニニ´ .:::::/
/`ー‐--‐‐?´\
全然関係ない話題ですけど。 ZOPE JAPANってつぶれたの?
ZOPEはスレ違い。 夏休み終了までもうすぐ!がんがれ
Zopeはスレ違いって、適当なスレはここしかないじゃん。 なんでZopeを毛嫌いするのか理解不能。
このスレにいるキチガイは Zope / Plone 関係者?
901 :
デフォルトの名無しさん :2006/08/29(火) 10:24:48
>887 あれ、ちょっとキモイよな。
なんだ、Pythonにきたキチガイは Zopeスレから来てたのか。
>>898 >なんでZopeを毛嫌いするのか理解不能。
Zopeの周辺にいるキチガイが毛嫌いされてるんだよ。
>>898 C のスレで Apache の話をするようなもんだろ
偶然ここに来てzopeがpythonに繋がっていることを知った
Zopeには興味あるんだけど、2chのスレがまったく機能してない…。 技術の話以外はつまらないと思うんだけどなあ。
>>906 Zopeは終わってるよ。みんPy作者もそういってるよ。
トレンドはdjangoかTurboGearだってさ。
Zopeが終わってるというのは、なぜ?どういう欠点が指摘されているの?
>>908 機能が複雑で、しかもアーキテクチャもごっそり変わったり
使う側からすると、ついていくのに疲れる
クライアントにも、納得してもらえない。
枯れるまで放置のほうがいい。
DjangoもTurboGearsも結構変わるけどね〜
Zopeが終わっているというより、Zope/Plone関係者の害基地が終わっているのだ。
ZJUGとPlone研究会を見る限り終わってるようにしか見えない件
>>907 釣られ乙。
マジレスすれば「Zope終わってる」はしばたちんの煽り。
彼はZopeの有用性を十分承知の上でやってる。
ただ、技術的な特性をなーんも知らんで思い込みだけで
Zope使って不幸になってる香具師が世の中多すぎるから、
Zopeでアダプトしづらい案件はDjango、TurboGearsでやって
Python全体で幸せになろうよってのは事実。
>>909 それZope3について俺が飲み会で話したことを
よく理解しないでコピペしてないか?
Zope2は2.10とかいう時点で相当枯れてるが‥‥
ZopeはZope2とZope3で互換性がないのとかZope2は事実上Ploneの
運用プラットフォームになってるとかJZUGとかJZUGとかJZUGとかが
問題なだけじゃね?
Zope本体の開発はかなり真面目に行われてると思うけどな
obsoleteになりそうな機能を使うとwarning出るし、ソース見ない
である程度使えるようになれるZopeBookもある
>>913 Zope,Django,TurboGearsでそれぞれ向き不向きを教えて欲しい
Zope3使ってるけど正直普通のCMSみたいなのは向いてないと思う
ZODBとかセキュリティをクラス毎に設定できるとかDI(だよね?)機能
があるとかコンポーネント志向とかその辺が鍵だよね?
この認識であってる?
915 :
デフォルトの名無しさん :2006/08/29(火) 15:49:10
CherryPyが仲間になりたそうにこちらを見ている
zope3 の検索結果 約 2,170,000 turbogears の検索結果 約 2,060,000 Djangoは一意性が低いので除外。 Zope3はもう何年も開発しててこの結果。 世の中の流れを見ような。
>>916 結論には同意するが、検索ヒット数を根拠にするのは馬鹿っぽいぞ
CherryPyはTurboGearsのコンポーネントとして使われてなかったっけ?
>>917 バカっぽい根拠から導き出された結論に同意してるオマエも馬鹿?
キチガイはひと味違うな(wwwww
このスレに粘着してるキチガイはZope3使いということでFA?
>>919 馬鹿っぽいって言っただけで、馬鹿だと断定したわけじゃないんだからそんなに興奮するなよw
Zope2系.......ピザすぎwwwwwwwwwwwww Zope3系.......企画倒れ Django........自己満足 TurboGears....RoRのパクリ
>>920 ( ゚д゚)
_(__つ/ ̄ ̄ ̄/_
\/ /
 ̄ ̄ ̄
図星だったみたいよ
( ゚д゚ )
_(__つ/ ̄ ̄ ̄/_
\/ /
 ̄ ̄ ̄
>>913 >俺が飲み会で話したことを
はーい
みんなここ試験に出るから
そろそろ「しばじゅん」ネタが登場するころだな。 それか自演初心者。
どれもこれも、
>>913 が飲み会で言ってた話ばかりだな
>>926 /\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:|
| ,,ノ(、_, )ヽ、,, .::::|
. | `-=ニ=- ' .:::::::|
\ `ニニ´ .:::::/
/`ー‐--‐‐?´\
普通に話そうよ、もう。 煽って何か得になることがあるの?
zope じゃなくて zope3 の検索結果数を持ってくるのは意図的?
粘着基地外のおかげで、今晩にもこのスレは消費されることでしょう。 次スレのタイトル案です。 【キチガイ】Pythonのお勉強 Part12【退散】
「夏休み」と言いながらオッサンばかりが 戯れているのはこのスレですか?
>>931 悲しく同意。
夏休みなんか始まる前から、ずっとこの調子だもの。
根拠のない無責任な煽りとか個人攻撃をするから荒れるんだろ。 キチガイ判定は別次元の行為なので許されるわけだが。
初めての基地外認定は8月24日のことでした。
>626 名前: デフォルトの名無しさん Mail: sage 投稿日: 2006/08/24(木) 13:02:26
>>>
ttp://coreblog.org/ats/scbscriber-of-coreblogml >> 「インストール方法」みたいな低ーーーいところとか,「落ちている物を拾って使います」的な乞食みたいな思想から抜け出せないのでは危ないと思います。
>> 趣味で使うならいいんだけどね。しかしまあ,趣味の延長ではおいしい物食べられないし,車とかプラズマテレビは買えない(笑)。
>
>で、初心者騙しの本書いて印税搾取かよ。
>こいつ、言ってることと、やってることとが乖離してるね。
>いい趣味をお持ちのようですなw
>627 名前: デフォルトの名無しさん Mail: sage 投稿日: 2006/08/24(木) 13:21:11
>
>>626 >文脈を無視した引用をする君の趣味のほうがキチガイじみている
つ web.py
乞食が住み着いた。
938 :
デフォルトの名無しさん :2006/08/29(火) 19:22:52
>937 指摘の内容はともかく、相手をキチガイ扱いしても荒れるだけでは? ご自身の品性も疑われますよ。
>>937 その辺はそれほど気にならないなあ。「ああ若いんだな」と思うだけだし。
このスレの煽り叩きの中心は、もっと年寄りだろう。
どうも「スレの番人」を自認している、少数の叩き屋が、ずっと前から常駐し
てるんじゃないかと思うんだが。
>>937 車とかプラズマテレビがほしいあまりに
自分を見失う乞食…
句点、読点、全角、半角。
>>934 元の文脈に則しているじゃん。
要するに
・俺らはハカーなんだ、おまえら初心者とは違う
・俺らは死活問題なんだ、おまえらの道楽趣味とは違う
と言いたいんでしょ?
しかし「俺ら」が井の中の蛙君なんだな、残念ながら。
初級者から中級者向きの本であることを
(頭が悪いなりに)がんばって説明した例
>>812 >きょう話題のみんPyを立ち読みしてきた
>変数とは箱です、見たいな説明があって、「変数知らんやつが対象なのか!」
>と思ってビビッた。
>次に関数の説明があって、「関数も0から説明するのか!」と思ってビビッた。
>パラパラめくってたら、モジュールとかクラスとかの話が出てて、
>「え、あそこから始まって、こんなとこまで進むの?」と、思ってビビッた。
>初心者が前から読むには粗過ぎる、上級者がリファレンス的に使うには冗長すぎるみたいな本なのかなーという印象(かなり適当
オープンソース・プロジェクトで一番恐ろしいものは、私怨だという。 コミュニティのいざこざから、私怨を持った人が現れ、そのプロダクトの普及 を何年にも渡って妨害し続けることがある。その被害は、すぐに飽きて離れる 厨房とは比較にならない。しかも当人はそれを正義だと思っている。 俺が初めてそういうのを見たのは、昔のMozillaコミュニティだった。2chでも、 煽りとその反発を自作自演して、盛大にスレを荒らしていた。一度IDを変え忘 れたことがあって、それではっきりと自作自演が分かった。 このスレでは、どうも自作自演は無さそうな気がする。しかしそういう(元) 関係者の存在は疑いないだろう。Zopeスレの荒廃振りを見れば明らかなことだ。 成功したオープンソース・プロジェクトの中心人物は、ほぼ例外なく、優れた 人格者だという。要するに、常識的な感覚の持ち主では無理で、神様みたいな 人格者だけがコミュニティという難物を扱えるものらしい。たまらんなあ。 悪いが俺はなるべく関わらずに生きていきたい。つうか無理。
クレームは財産。無反応は終焉を意味する。
1. 私怨らしい 2. Zope関係らしい 3. すごくヒマらしい
>>944 なんだかよくわからんけど、柴田淳に関係する話?
私怨には 個人の特定につながる情報が満載なんだよね 気をつけてね
しばじゅんは来年には消えてる人。
>>723 >あなたが誰だか分かっちゃった
>世の中狭いからね
>キチガイ呼ばわりの荒らしじゃかなうわけないよね
>がんばってね
とっくに特定されてるっぽい。
ある特定個人が非難される場合に、「私怨」しかありえないという精神構造が怖いな。
>>944 何がおまえを駆り立てて、その長文をかかせたのだ?w
>>946 たぶん当たってると思う。
Pyスレは敗北者がまったりできるスレであってほしいもんだ。
私怨持ちの恐ろしい点の一つは、コミュニティの自治能力を奪うところ。 例えば、何でも叩きたいお年頃の厨房なんてのは、普通はスルーすれば、 すぐどこかへ行ってしまう。 ところが私怨持ちがいると、その火の粉を煽って、大火事に仕立てる。 スルーしたって延々と燃焼し続けることになる。 かと言って叩き返しても、確信犯(誤用にあらず)だから全然こたえない。 ましてや匿名掲示板。何も失うものは無い。 これはもう駄目かも分からんね。
うわぁ。Zope関係で粘着しそうなのって1人しか居ないぢゃん。 コワッ。
現状だとキチガイ君を2chに隔離できてるっぽいから、まあいいんじゃないの? 世間様に迷惑はかからんだろう。 このスレ的にはかなり迷惑してるけどな。
ジサークジエーン
このスレのキチガイ君は 頭弱そうなので 944とかを読んで むしろスレの荒らし方を学んでる希ガス その弱い頭で学べることは 少ないと思うけど(wwwww
このスレの進行はすきだったのに。 駄本とかZopeとか、自分のチラシの裏にかいて。
どこがそんなに恐ろしいのか分からないんだけど、肝炎みたいなもんですか?
で、Python3000ってなに?
喋って空飛ぶタイムマシンカーじゃね?
グイドの脳内
スレタイから『敗北者』をはずすから、こんなことになるんだ!
グイドなのギドじゃないの?
>>964 激しく同意。敗北者って、含羞に満ちたいいスレタイだよね。
それに、私怨持ちや厨房も含めて、今のわれわれは、みんな敗北者にふさわしい。
誰もこのスレで得をしていないんだから。
キチガイは敗北者にすら含まれません。
私怨は怖いけどキチガイはもっと怖い なにしろ感覚が世間からズレているから、普通に接していても 勝手に解釈をして怨みをもたれる 日常生活でも、誰かに追われるような恐怖感を 勝手に味わっているに違いない 私怨はコミュニティを殺すのかも知れないが キチガイは社会を壊す だから病院や刑務所に隔離されるのだ
どこがそんなに恐ろしいのか分からないんだけど、インキンみたいなもんですか?
おかえり。
インキンも怖いが疥癬も怖いぞ
みんパイ読んでて分からないことがあるんだけど、いらなくなったタプルって破棄することってできないの?
明牌
ここはもうあれですね
これがキチガイぱわー
977 :
972 :2006/08/29(火) 23:46:36
>>973 宣伝じゃねえ。
この本がいい加減すぎてわからねえんだよ。
みんPy禁止ですから
>>972 del タプルの変数名
で破棄できるよ。
delはほかにも何でも消せる。
>>972 ほおっておいて、参照がなくなればそのうちGCされる。
みんPy読んでいるレベルでは、その辺のことに神経質になる必要なしだ。
981 :
972 :2006/08/29(火) 23:48:57
誰か次スレお願い!できたら「敗北者」つきで。
「敗北者のPython」3012タプル目
「みんなのPython」 Part12 これで
キチガイはPythonをつぶそうとしているね。
import mataari
次スレを見てみろ。立てた奴は本当に基地外だ。
・初心者に分かりづらい、Part3000.12 というスレタイ
・みんPy著者への煽りを
>>1 に入れる
Traceback (most recent call last): File "<stdin>", line 1, in ? ImportError: No module named mataari
キチガイへのレクイエムとして,このスレを使い続けることを提案するよ(www
>>988 それが正常だと思っているのが真性キチガイ(・∀・)
おまいら、この状況を面白がってるだろ。
>>988 みんパイが叩かれてる理由を説明するレスが多すぎるから、それを省くために
>>1 に書いといてやったよ
著者の主張を広めてみんパイ著者をあおってるってことはないだろう
コミュニティの自浄作用に期待します。
>
>>4 >ふざけるな。貴様がスレを立てた基地害だろうが。
>貴様が消えろ。今度という今度は許さん。
ぷぷぷぷぷ
>>991 普通の人なら作者はまともな人間だと分かるから安心しろよ。
>>993 嘘をつけ。みんPy叩き関連は、おそらく大部分が貴様の自作自演だ。
このスレの人間はほとんど読んでない。対象読者から外れているからな。
>>all
俺はもう諦めた。次スレはこのまま使おう。
馬鹿は言葉が通じないから馬鹿なのだ。どうしようもない。
>>998 こっちはみんパイの宣伝ばっかで飽き飽きしてんだよ。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。