1 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 16:23:39 ] Python オフィシャルサイト www.python.org/ 日本Pythonユーザ会 www.python.jp/Zope/ FrontPage - Pythonのお勉強 python.rdy.jp/ 前スレ pc11.2ch.net/test/read.cgi/tech/1196426978/ ◆関連スレッド Microsoft IronPython 1.0 pc11.2ch.net/test/read.cgi/tech/1157686822/ Python の宿題ここで答えます Part 1 pc11.2ch.net/test/read.cgi/tech/1153585095/ 2ch検索: [python] find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python ◆関連サイト Python ドキュメント www.python.jp/doc/release/ 参考サイト - Pythonのお勉強 python.rdy.jp/wiki.cgi?page=%BB%B2%B9%CD%A5%B5%A5%A4%A5%C8 以上
41 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 14:07:52 ] Orz.__init__ (!= Hoge.Orz.__init__) の print で例外起こる
42 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 16:30:04 ] 本当だったら九行目のコンストラクタのprintでエラーにならなきゃいけないんじゃないの?
43 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 19:01:40 ] for e in names: D[e] = colors.random() # 色配列からランダムで取り出す(copy or popする?) 名前のリストがあってそれに重複しないように色を付ける にはどうしたら良いですか?
44 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 19:24:44 ] >43 colors をコピーしたものを作って random.shuffle(colors_copy)
45 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 21:10:37 ] >>42 手元でやってみたけど、>>41 の言ってるように、 コンストラクタを実行しようとして、9行目でエラーで止まったよ。 これでいいと思うけど。 c:\temp>c:\Python25\python.exe --version Python 2.5.1 c:\temp>c:\Python25\python.exe hoge.py Traceback (most recent call last): File "hoge.py", line 11, in <module> Orz() File "hoge.py", line 9, in __init__ print Hoge.Orz.__private AttributeError: type object 'Orz' has no attribute '_Orz__private'
46 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 00:11:30 ] dropbox の dropbox.exe に pyc が大量に含まれてるのだけど、 なんか普通のバイトコードじゃないんだよね。 ファイルサイズからすると RC4 的な暗号化がされてるっぽい。 解き方教えて。
47 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 01:27:36 ] いやいや、Orz は Hoge.Orz を継承してるわけだよね。 んで、Hoge.Orz のコンストラクタで self.__private を定義したと。この __private は アンダースコア2つで始まる名前な訳だから、Horz.Orz を継承した Orz からも self.__private でアクセスできるのはおかしいんでない? でも Orz.__init__ 内の print 文ではなぜか例外が発生しない。
48 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 01:40:02 ] 属性__privateは継承しないけど、__privateを定義するメソッドを継承して実行したから __privateが定義されてても良いんじゃないの?
49 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 02:07:37 ] >>47 self.__private と書いたら self._Orz__private になるわけだから、おかしくない。 >>48 実際に __private は名前を変えて存在する。
50 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 08:14:04 ] これって結構落とし穴だよなあ。 別パッケージの同名クラスを継承した場合、 __で始まっていてもメンバ名のバッティングを気にしないといかん。 まあ、同名で継承するなって話か。。。。
51 名前:名無しさん@いたづらはいやづら mailto:sage [2008/01/26(土) 13:21:46 ] >>47 コンストラクタは __new__ だぞ。 __init__ は初期化。
52 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 16:52:02 ] >1 おちゅ
53 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 00:09:51 ] 今から勉強始めるのと、3が出るのを待つのと どっちが賢い? プログラミングはJavaと.NETを触ったことがあるレベルなのですが、 Pythonの勉強をいつ始めようか悩んでいます。
54 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 00:15:11 ] 3が出ても、しばらくは 現行のバージョンも使われるだろうし 何より、恐らく3が出てからしばらくの間は 「3からPythonを始めた人」向けの解説は出回らず 現行バージョンを知っている人向けの解説が主になると思う。
55 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:29:35 ] 今から3のアルファで勉強するのがベストじゃないか? 日本語の資料は諦める必要があるけど
56 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:48:52 ] >>55 3より前を勉強する価値はほとんどない ってことでしょうか? 3ってそんなに凄いのか
57 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 02:31:54 ] んなこたぁない 原典と付属モジュールとPEP追ってちゃんと勉強する気があるなら3.xからはいって いいと思うけど、 片手間でor趣味でor書籍や資料が多ければいいってんだったら2.xだろ
58 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 03:18:32 ] 既存のスクリプトは2.xで書かれているのが大半だからなぁ
59 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 03:47:46 ] 基本的な考え方が根本的に変わるところはほとんど無いと思われる ので、いまから2.5勉強しても全然損しないと思う。 BNFの定義してる、grammar.txtはほとんど流用なので、文法なんかも身につければ ほぼそのまま通用すると思う
60 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 04:37:38 ] 【審議中】 _,,..,,,,_ _,,..,,,,_ _,,..,,,_/ ・ω・ヽ/・ω・ ヽ,..,,,,_ ./ ・ω_,,..,,,,_ l _,,..,,,,_/ω・ ヽ | / ・ヽ /・ ヽ l `'ー--l ll l---‐´ `'ー---‐´`'ー---‐´
61 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 11:39:59 ] 今と3の違いまとめページとかない?
62 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 11:46:46 ] ttp://gihyo.jp/dev/feature/01/python3000
63 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 14:03:11 ] What’s New in Python 3.0 ttp://docs.python.org/dev/3.0/whatsnew/3.0.html
64 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 17:10:17 ] どっちにしても現有のコード資産は2以前でしか使えないから 否応無く勉強することになりそうだ
65 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 17:32:13 ] >>53 2の勉強をして2to3コンバーターがまともに動くことを Googleに向けて祈る
66 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 17:59:37 ] ありがとうみんな。 よくわからないのでとりあえず今日から始めてみます。 なんかこのままいくと3が出ても勉強を始めない自分がいそうなので。
67 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:02:57 ] 本当は「Python3.0になっても通用するPython2.x入門」とかあればいいんだろうけどね つまり3.0で無くなる予定のレガシーな要素を抜いての入門だけど
68 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:08:35 ] >>67 それってPython3.0の新機能も使わないってことだから 2.xの勉強としても3.0の勉強としても不十分ジャマイカ? >>66 3.0を横目で眺めつつ(気が向いたらかじりつつ)2.xを勉強するのが良いと思われ。 3.0が出たあとも2.xは相当長い間使われるハズだから。 個人的な経験からいっても、2.0が出たあとずいぶん長いこと1.5.2を使っていたし。
69 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:30:15 ] 62と63に感謝。面白い読み物。 py3kについて事前情報で改悪改悪言ってたユーザーのサイト見て、 ちょっと偏見入ってたんだけど62の方を読むと互換性以外の点では、 今のところ良い事尽くめなんじゃねえの?って感じ。 でもまあ、そろそろ罠が来そうで楽しみw
70 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:30:25 ] >>66 farm3.static.flickr.com/2420/2222255849_cb526eb574_o.jpg farm3.static.flickr.com/2103/2222255903_657a7702ee_o.jpg Python ライブラリリファレンス www.python.jp/doc/2.4/lib/lib.html PDF版(ローカルに保存して Foxit Reader でみるの推奨) www.python.jp/doc/pdf/release/lib.pdf 2.4のドキュメントだけど、とても参考になるのでお勧め。 というかまだ2.4が出てから1年半くらいしか経ってない?
71 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:58:04 ] >それってPython3.0の新機能も使わないってことだから >2.xの勉強としても3.0の勉強としても不十分ジャマイカ? なんでそうなる
72 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:56:08 ] >>71 2.xと3.0の共通部分しか勉強しないってことなんだろ?
73 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 19:01:45 ] 最近のPythonスレレベルの低下がひどい
74 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 19:58:17 ] >>73 職業マがいないからだろ。 実際日本で使ってる所も多くない言語だし。
75 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 21:07:55 ] >職業マがいないからだろ。 ここは胴衣 >実際日本で使ってる所も多くない言語だし。 実際素人が増えてプロが減ってる
76 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 21:18:28 ] >>73 お前が積極的に参加しないからだよ!
77 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 21:26:24 ] anond.hatelabo.jp/keyword/%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89?mode=rss ちょっとおもしろかった。専門でコード書いてる人とかは あまり重要でもないのかもしれん。ソースの可読性とか どうでもいいけどIE7かFirefoxとかじゃないと xml形式のページがヒットしても開くの免土井ぽ…
78 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 22:16:25 ] むしろマ板民が流入してるからな感が
79 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 22:24:51 ] 昔からこんなもんだ 2chに期待するのはどうかと思う
80 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 01:04:41 ] 非常に初歩的な問題ですみません from BeautifulSoup import BeautifulSoup from urllib2 import urlopen page = urlopen("**** ") soup = BeautifulSoup(page) for hoge in soup('*', "****"): print unicode(hoge.string) で返ってきたhogeをそのままテキストファイルで保存しようと思った場合 どのように以後に付け加えればいいでしょうか?
81 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 01:26:46 ] >>80 lxml使え
82 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 02:01:14 ] >>80 お前はバカかとアホかと そこまで出来てるんならすぐだろ BeautifulSoup使う前に基礎の基礎から考え直せ for以前でファイルを書き込みで開いて for以下にインデントしてhogeを書き込め 理由は考えろボケが
83 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 10:01:18 ] Python において「ハッシュ可能」って、「変更不可能」と同義?
84 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 10:56:02 ] PyDoc でドキュメント生成しようとしたら、モジュール hoge が見つかりませんといって 停止しやがる。 hogeはCの実行ファイル側で定義されてるからスクリプトは存在しないんだよ!!! それぐらい空気読んでスキップしてくれよ!! これはあれか、hoge.py ってダミーファイルを用意しないといけないのか。
85 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 11:15:24 ] __dell__
86 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 13:20:45 ] >>83 つ ttp://lowlife.jp/mft/weblog/2005/12/26.html#P869
87 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 16:53:40 ] d
88 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:12:30 ] デコレータについて俺に優しく教えてくれ。 CのポインタならぬPythonのデコレータ
89 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:23:03 ] おでこっていいよな。
90 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 22:05:59 ] 単なる炉利だろ
91 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 22:33:08 ] 英語が苦でなくて、仕様書とかを見るのが早いという人なら、 PEPを読んでしまうのがてっとりばやい気が。 ttp://www.python.org/dev/peps/pep-0318/
92 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:02:10 ] hashとdictって違うものですよね?
93 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:02:13 ] デコレータってあんまり使わないんだけどここにいる人たちはどんな使い方してる? 読み出し専用プロパティ作るの楽だなあとしか思ったことない @property def readonly(self): return あとはロックとかのリソース管理?
94 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:20:59 ] >>88 用途その@ クラスメソッドとか、スタティックメソッドを作るのに必要 @staticmethod def a(): ... @classmethod def b(cls, ...): ...
95 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 02:57:30 ] ロックの一種だけどクリティカルセクションに入れたい時とか?
96 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 07:51:38 ] 3.0からはクラスにもデコレータが適用できるね こっちはどんな使い道があるだろう
97 名前:デフォルトの名無しさん [2008/01/30(水) 09:49:21 ] >>96 メタクラ(ry
98 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 14:16:58 ] >>91 Design Goals あたりがポイントぽいのでまとめてみた Decorator の実装に関する議論をまとめた wiki wiki.python.org/moin/PythonDecorators Phillip Eby さんの解説記事 www.everes.net/2007/aug/12/python-decorator/ Jim Hugunin さんのレシピ集 mail.python.org/pipermail/python-dev/2004-April/044132.html a gazillion(何億兆) "toy parser" tools out there (from Emacs python-mode to Python's own pyclbr.py) would have to be changed too groups.google.com/group/comp.lang.python/msg/949f9d7f1eb2644c?hl=en&lr=&ie=UTF-8&oe=UTF-8
99 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:36:16 ] setup.pyの中でversionを設定できますが、 この数値を普通はCVSとどうやって連携とるものなんでしょうか。 setup.pyのversionを手動で書き換えて、 同じ数字でCVSにタグをつけるもんですか? だとすると、間違えたりする可能性がありそうで嫌だな、と。 setup.pyのversionとCVSのリリースタグの、 どっちかを変更すると、もう一方にも自動で反映されるようにしたいんですが、 どうしたらいいんでしょうか。
100 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:30:52 ] >>99 普通はファイルのリビジョンとパッケージのバージョンは別だと思うんだけど。
101 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 22:56:25 ] みなさんIDE何使ってますか? 素直にIDLE?
102 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:01:12 ] xyzzy
103 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:16:18 ] PyScripter
104 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:57:09 ] >>99 setup.pyはPythonスクリプトだから、CVSのリリースタグをsetup.pyに埋め込んで、それをpythonで処理すればいい。 といってもCVSはよく知らんのだけど例えば __release__ = '$Release: 1.2.3 $' # こんなリリースタグが埋め込めたとして m = re.search(r'[.¥d]+', __release__) version = m.group(0) というのはどうでしょうか。
105 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:59:24 ] Eclipse+PyDev
106 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 01:15:26 ] pyplってcheese shopと同じようなもの? 今のPHP云々の中で「Perlで言うCPAN相当な再利用可能ライブラリの集積所」、 みたいな文脈で名前が挙がったんだけど、日本語の情報が少なくて…。
107 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 01:26:07 ] 昔 pypi 今 cheese shop
108 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 01:34:32 ] 変数名を取得する方法ってありますか? >>> foo = Bar() >>> foo.get_var_name() 'foo' >>> baz = Bar() >>> baz.get_var_name() 'baz' という動作を期待しています。 newやreprモジュールを調べたのですが、クラス名、モジュール名は取得できる ものの変数名の取得がとんと考えつきません。 ご教示いただければ幸いです。
109 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 01:53:22 ] >>107 ありがとう、そゆことなんだ。 言及してた人がPython使いじゃないから、古い名前しか知らなかったのか。 106でPYPLと打ってしまってて、検索に失敗していたのは許して欲しい…。
110 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 03:08:43 ] >>108 無理 できるのは、locals() でローカル変数の一覧を、globals() でグローバル変数の一覧をとってくるぐらい。 そんなことを必要とするのはたぶん、「ほんとうにやりたいこと」に対する解決方法が間違ってると思うから、まず「ほんとうにやりたいこと」を書いてみるといいよ。
111 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 03:18:37 ] >>108 class Foo: def get_var_name(self): for key, value in globals().items(): if id(value) == id(self): return key return None foo = Foo() print foo.get_var_name() この質問、ちょくちょく出るけど Python で「変数名を取得したい」と思ったら十中八九「設計ミス」だと思う。
112 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 03:20:14 ] うは、かぶったw 結婚してください。 ヾ(o゚ω゚o)ノ"プニプニ!
113 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 03:26:57 ] >111 複数の変数が同じオブジェクトを指してるときはうまく動作しないね。 まあ、>110,111の言うとおり設計見直した方がいいと思う。
114 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 03:57:58 ] import traceback import re class Foo: def get_var_name(self): stack = traceback.extract_stack(limit=2) return re.search(r"([_a-zA-Z][_a-zA-Z0-9]+)\.get_var_name", stack[0][3]).group(1) foo = Foo() print foo.get_var_name()
115 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 04:07:27 ] >>111 >>>foo = Bar() >>>foo._name = 'foo' >>>foo._name 'foo'
116 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 04:51:28 ] >>110-114 本当にありがとうございます。 > 「ほんとうにやりたいこと」 というのはほんとうに純粋な興味からです。しかし皆さんのお話をうかがうに、 元々こんなことをやることが無理筋なのだと理解しました。 >>113 の方が仰っているのを理解する意味で、 foo = Foo() print id(foo), foo.get_var_name() bar = Foo() print id(bar), bar.get_var_name() bar = foo print id(foo), foo.get_var_name() print id(bar), bar.get_var_name() としてそれぞれ確認を行いました。 いずれにしても、globals()やid, tracebackの存在を知ることができて ありがたいです。 >>115 ワロタ。。のですが、つまり原理的にこうするしかないということですね。
117 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 06:57:19 ] 呼び出し元のフレームから.f_code.co_codeと.f_lasti辺りから解析すれば変数名は取得できるんじゃないの? 式になると当然無理だけど まあ変数名取得してどうすんのという気はする
118 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 07:01:39 ] 変数名がどうして必要になるのかが毎度気になる
119 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 07:25:51 ] >>70 Foxit Reader 使ってみたら PDF サクサク動いて感動した。d
120 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 09:47:29 ] cheese shopを未だにpypiと言う人にPythonを語る資格はないと思う。
121 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 09:48:48 ] たとえば、obj._name で常に変数名が取れたとする。 しかし、これは、'obj' と常に等しい。したがって変数名を取る仕組みは不要。
122 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 10:55:42 ] >>> foo = Bar() >>> foo._name = 'foo' >>> foo._name 'foo' >>> bar = foo >>> bar._name 'foo' >>> bar._name = 'bar' >>> foo._name 'bar'
123 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 12:59:11 ] もし変数名が取得できたらデバッグとかテストとか楽になりそうだと思うけどな
124 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:01:02 ] ttp://d.hatena.ne.jp/chrono-meter/20080131/p1 書いては見たけど使いどころ思いつかん
125 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:28:17 ] Pythonの変数はコンテナじゃなくてリファレンスだから、 いろいろ変なことが起こる。 少なくともCPythonでは、 a = 2 b = 3 - 1 とすると、aとbは同じオブジェクトになる(a is bがTrueになる)。 文字列もインターンされたりされなかったりするから、 s = "ab" t = "a" + "b" だとs is t。 u = "a/b" v = "a" + "/" + "b" だとu is not v。 そーいうのを知ったうえでそれでもやるなら、どうぞどうぞ、という感じ。
126 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:34:12 ] >>123 >>108 みたいな方法が出来ないというのであって、デバッグとかテストのときに 変数名とその値の一覧を取得するのはlocals(), globals()でおk
127 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:35:00 ] >>> "ab" is "a"+"b" True >>> "abc" is "a"+"b"+"c" True >>> "a/c" is "a"+"/"+"c" False なんだコレ?、バグじゃね?w
128 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:40:59 ] >>> 200000 is 100000 + 100000 False >>> 20000 is 10000 + 10000 False >>> 2000 is 1000 + 1000 False >>> 200 is 100 + 100 True >>> 20 is 10 + 10 True >>> 2 is 1 + 1 True テラ意味不明w笑いが止まらんw
129 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:41:02 ] is はポインタ比較。等値比較には == を使え
130 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:42:52 ] 何が? 文字列や整数のようなオブジェクトがimmutableになっていて、VMが勝手に使いまわしてくれるのは大変ありがたいんだが。 再利用基準はVM依存だから、非明示的に作られた同値オブジェクトが同一だったり非同一だったりするのは当たり前。
131 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:54:41 ] >>125 の > Pythonの変数はコンテナじゃなくてリファレンス が真理だと思う。 クラスの中で self.get_var_name() とかして自分の名前を知りたいのかもしれないけど、 参照元が1つとは限らんし、その名前のコンテキストもわからんし、使いようがないような。
132 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 14:04:26 ] >再利用基準はVM依存だから、非明示的に作られた同値オブジェクトが同一だったり非同一だったりするのは当たり前。 immutable なのに再利用されないものがある理由が分からん
133 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 14:20:41 ] >>132 既にVM内に同値オブジェクトが存在するかどうか探す手間がオブジェクトの生成コストを超えるなら、再利用しない方がマシ。
134 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:26:55 ] >>91 >>98 ありがとう。ほんとうにありがとう。 こういう人たちがいるのでPython大好きだ
135 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:47:57 ] weakref.ref つかうときって、普通に hoge_ref = weakref.ref(hoge) ってやってる?それとも hoge が None である場合を考慮して def get_hoge(self): return self.__hoge_ref and self.__hoge_ref() def set_hoge(self, v): self.__hoge_ref = v and weakref.ref(v) hoge = property(get_hoge, set_hoge) みたいにしてる?
136 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:38:09 ] >>127 は、識別子として有効な文字列ならinternされるって実装だから起こる現象。
137 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 05:00:40 ] >>120 pypi.python.org/pypi まずはここのサイトの管理人に文句を言ってくれないかwww
138 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 09:21:55 ] 自分の間違いを他人のせいにする奴は生きている資格がないので今すぐ死ね。
139 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 10:15:36 ] setattr(self, "a", "b") self.a = "b" これ同じ?どっちが早い?
140 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 11:47:57 ] >>138 他人に'死ね'なんていうもんじゃないよ!! 137がPythonを使うのを止めれば済むことじゃないか!!!
141 名前:デフォルトの名無しさん [2008/02/01(金) 17:03:02 ] ファイルとかパスを正規表現を使って探せる関数はありますか? globはワイルドカードしか使えません><