1 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 01:45:30 ] Pythonオフィシャルサイト www.python.org/ 日本Pythonユーザ会 www.python.jp/Zope/ まとめWiki python.rdy.jp/ 関連スレ find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python 前スレ pc11.2ch.net/test/read.cgi/tech/1230821097/
110 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:32:39 ] 初めてのPythonにUNICODEの扱いがほとんど書かれてないし しかも間違ってるwことかな
111 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:33:43 ] >>109 まず例が少ないよ
112 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:35:51 ] >>105 lenが覚えられないとは書いてないじゃない lenがあることで他の仕様が推測しにくくなるった書いてるんですよ
113 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:36:02 ] >>110 あれは著者が UNICODE についてなにも知らないので 触れてるフリしてさりげなくスルーしてるだけかと
114 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:37:34 ] >>87 違いは、 def bar(a=a): だと barが定義された時点のaの値が func_defaultsに入る。 URLのはcell creationとある様に、barが呼び出された時点のaの値がfunc_closureにcellオブジェクトとして格納される。 …くらいかな、。jinja2内での用途は知らないけど、 locals()の返す辞書にaを含めるという点はどちらも満たしてるし、 記事にはcellはoevrheadと書かれているので、cellオブジェクト自身が必要なのではなく 結果だけ欲しいのであれば、どちらでもいいのかもしれない。
115 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:37:48 ] 流れを切る様ですみません。 class C: f = lambda x: x + 1 と書いて、C.f(3)などとやろうとすると fの第一引数がCのinstanceになってしまうのですが、 なんとかならないでしょうか? 今は仕方ないので @classmethod def f(cls,x): return x + 1 としていますが、わずらわしいです。
116 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:38:48 ] カッコ無しでメソッド呼び出しをできるようにしてしまったばっかりに メソッドオブジェクトの代入に特別な文法を導入せざるを得なかったRubyってかっこいいよね。
117 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:39:36 ] tupleとlistの使い分けが良くわからないんですけど それぞれに決まった用途ってあるんですか?
118 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:44:17 ] 4.16 Why are there separate tuple and list data types? www.python.org/doc/faq/general/#why-are-there-separate-tuple-and-list-data-types
119 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:44:24 ] >>115 f = staticmethod(lambda x: x + 1)
120 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:48:54 ] >>119 できました! ありがとうございます。
121 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:54:22 ] >>117 tuple は型が違うものを混ぜても気にせず放り込んで list は型がそろっている という使い分けを無意識にしてるような気がします
122 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:56:53 ] >>121 listで型をそろえるとなるとtreeが作れないね
123 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:05:03 ] そうしないといけないって訳じゃないのでは
124 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:06:53 ] tuple は immutable だからね
125 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:08:40 ] >>117 tupleとlistで一番違うのは、辞書のキーに使えるかどうかかな。 tupleは辞書のキーにできるが、listはできない。 辞書のキーには変更可能(mutable)な型は使えないから。
126 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:09:20 ] pythonのlistはvectorに改名した方が実情にあっている。 そして、immutableなlistを新しく入れて欲しい。
127 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:10:14 ] >>126 同時に末尾最適化も入れないとあまり意味が無いな
128 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:13:21 ] immutableなlistとtupleの違いを詳しく
129 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:15:20 ] >>126 は、力点としては関数型的なconsリストを指しているのだと思う
130 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:18:00 ] immutableなlist [a1,a2,a3,a4]は (a1,(a2,(a3,(a4,())))) で代用できる。面倒だけど。
131 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:20:05 ] >>130 確かにそれでできるけど、map/filter/foldとか使えないし 自前で再帰的なアルゴリズムを記述しても末尾最適化もされないから ぶっちゃけオモチャだよね
132 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 04:29:54 ] lenが一貫性ないってのはよくわからん。一貫性がないっていうのは Javaみたく配列の長さはa.length、ArrayListはa.size()、文字列の長さは a.length()みたいのを一貫性がないというのであって、Pythonのは違うと 思う。まあ、慣れの問題だね。
133 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 05:19:36 ] 一貫性ねえじゃんwww
134 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 05:25:43 ] 愚かな一貫性は・・・
135 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 05:31:34 ] length size count add append push_back delete remove erase title caption text widget control component list array vector
136 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 05:34:41 ] 一貫性を定義しろ。話はそれからだ
137 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 05:38:33 ] goo国語 いっかん-せい ―くわん― 0 【一貫性】 最初から最後まで矛盾がない状態であること。同じ態度を持続すること。
138 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 08:35:30 ] Ruby厨の言うことは一貫性がない。
139 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 10:58:51 ] 結局のところどっちも使えるようにしとけっ! みたいな
140 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 11:08:14 ] >一貫性がないっていうのは >Javaみたく配列の長さはa.length、ArrayListはa.size()、 >文字列の長さは a.length()みたいのを >一貫性がないというのであって どうして一つの文章で一貫性がないを二度も言う必要があるのはなぜなのかはおいといて Javaでは「敢えて使い分けてる」んですよ 型安全と、メソッド名から型が判別出来こととの冗長性をわざと実現しているんです
141 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 11:27:49 ] nautilussvnを使っているんですが、クライアント認証を使ったSSLを経由してsvnサーバに つなごうと思ったら、SSLに対応していないのかエラーが出てしまいます。 Error : callback_ssl_client_cert_prompt required ↑こんなの なんとなく、クライアント認証用のプロンプトが必要だとか言ってるっぽいので、pythonのSSL ライブラリでも入れればいいのかと思うのですが、対処方法ご存知のかたがいらしたら教えていただけませんか?
142 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 12:06:32 ] つttp://www.google.co.jp/search?q=nautilus+svn+python+ssl
143 名前:デフォルトの名無しさん [2009/02/22(日) 13:02:27 ] >>110 間違ってるってどのへん?
144 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 13:57:52 ] a.__lt__(self, b) : a < b a.__eq__(self, b) : a == b a.__getitem__(self, i) a[i] a.__hash__(self) : hash(a) a.__len__(self): len(a) hashやlenも演算子に類するものと見ればいいんジャマイカ。 実際長さは__getitem__とも密接な関係にあるしね。うっかり 同名のメソッドを定義してアボーンなんてリスクを考えれば これはこれでありだと思ふ。
145 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 15:53:14 ] 2.6で(まともな)sslモジュールが標準になったけど 中身がCで書かれてて 派生クラスを食ってくれんのが悩み。
146 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 17:11:00 ] >>145 自分で拡張したい場合は確かに悩みどころだよな。 一方で、標準機能にいろんなものを詰め込んで欲しいと考える人もいるし。 妥協点としては、基本エンジンを簡潔・高速にして、よく使いそうな機能はライブラリで容易するとか。
147 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 17:53:44 ] 暗いなら自ら明かりをつけましょう
148 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 18:46:17 ] クレクレ厨乙
149 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 18:47:28 ] 誤爆
150 名前:デフォルトの名無しさん [2009/02/22(日) 19:52:09 ] pythonのlambdaで実験していて、以下の問題に突き当たりました。 識者の方がいらっしゃいましたら、 ご教授願えるとありがたいです。 //無名関数をn個リストにして返す関数 def make_funcs(n): fn_list = [] for i in range(n): fn_list.append(lambda x : i*x) return fn_list //code block fL = make_funcs(5) for f in fL: print(f(10)) //実行結果 40 40 40 40 //期待する実行結果 0 10 20 30 40 for文中のiが上手く認識されていないように思えます。 Schemeのクロージャとは振る舞いが異なるのでしょうか?
151 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 20:10:18 ] lambda x, i=i: i*x
152 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 20:27:38 ] >>150 Pythonでもクロージャは環境をキャプチャするんだが そのforループではiが逐次破壊的に書き換えられてしまう (let束縛ではなくset!のイメージ)んでそういう動作になる 単一代入でない&クロージャをサポートする言語で破壊的なループを使って そういう書き方をすると、そういう動作になるのが普通で、 JavaScriptやPerlなんかもそうなったはず Pythonでは>>151 のような方法で対処できるが、魔術的だと感じられるなら ループの中でさらにdefで明示的にブロックを作って、その中で クロージャを作ったりするといいと思うよ
153 名前:152 mailto:sage [2009/02/22(日) 20:34:39 ] 例えばこんな風に書くということね def make_funcs(n): def make_func(i): return lambda x: i * x fn_list = [] for i in range(n): fn_list.append(make_func(i)) return fn_list もっと短く書く書くこともできる def make_funcs(n): make_func = lambda i: lambda x: i * x return [ make_func(i) for i in range(n) ]
154 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 20:54:37 ] >> 151, 152 非常に分かりやすい説明で、問題の原因が良く理解できました。 また、正しい書き方も分かりました。 ありがとうございました。
155 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 21:13:08 ] …で、実際処理速度はどうなの?>パイソン PHPより早いのかな?
156 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 21:19:48 ] おおむねPython>Perl>PHP>Rubyってとこじゃね?
157 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 21:33:59 ] shootout.alioth.debian.org/u32/ その手のベンチマークで定番?になってるサイトです。 言語の種類だけでなく、プログラミングの手法によっても結構変わるみたいですね。
158 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 21:47:06 ] shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all&box=1
159 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 21:55:27 ] C++が0.08秒で、PHPが48分って・・・orz 完全にやる気なくした・・www
160 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:01:33 ] >>156 馬鹿じゃない?
161 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:03:23 ] >>142 この回答って Error : callback_ssl_client_cert_prompt required これの対処法の回答という認識でいいんですかね・・・? ググってみたんですがどれが回答になるのか分からなかったんですけど・・・。 そういうレベルの人はここに来てはいけないということですかね??
162 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:14:19 ] >>159 用途に合わせて言語を選ぶ。 当たり前のことじゃないか。
163 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:31:45 ] >>160 なんで?
164 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:33:07 ] >>161 こっちで質問しる gimpo.2ch.net/esp/
165 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:50:42 ] >>157 python 3 もっとがんがれ おれもPHPが一番鈍足だとはしらんかった
166 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:54:23 ] >>163 根拠を示さないレス乞食はそっとしてあげて。
167 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:04:54 ] pass
168 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:34:42 ] インタプリタが遅いのは当たり前田のSPAM
169 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:37:20 ] まぁ>>156 自体に根拠がないけどね
170 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:40:26 ] まあ・・ウェブならスクリプト言語でも十分ですけどね 2〜3秒以上もかかる計算滅多にないし 確かにベンチマークではpythonの方が良い成績のことが多いみたいだけど スクリプト言語である以上、ドングリの背比べのような気もしないではない ただ、pythonってphpに取って代わるメジャーなスクリプト言語になり得るのかな?
171 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:41:30 ] >>158 見ると>>156 の順番通りだけど?
172 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:44:35 ] >>170 パフォーマンスを気にする必要があるのは、10K問題とかだと思う。
173 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:57:17 ] しっかしPHP6はいつ出るんだ? WEBはDBへの接続とDB自体の処理速度が一番ボトルネックだと思う。 そこが早ければある程度なら問題ないんじゃないだろうか。
174 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:59:41 ] PHPは(言語)仕様がどうのってよりも、ビジネス戦略で広まってるだけですがな。
175 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 00:02:38 ] 10k問題という言葉・・初めて知りましたw 一万接続なんて、スクリプトじゃむりぽ …というか、アパッチも無理なんじゃ
176 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 00:02:43 ] ビジネス戦略って一体何なんだ?
177 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 00:52:54 ] Python 3.0の変更点を調べていると、 text.world.coocan.jp/TSNET/?What 'sNewInPython3.0 > callable関数は削除されました。 >『callable(f)』の代わりに、 >『hasattr(f, '__call__')』が使えます。 > operator.isCallable関数もなくなりました。 とあるのですが、後者の方が書き難いのではないかと思います。 Pythonでは複数のやり方を嫌うという説明を見ました。 しかし、より良いものが残るべきとう意見は分かります。 でも、今回の件は消す必要が無かったのでは? と思ってしまいます。 皆さんの意見はいかがでしょうか?
178 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 01:01:28 ] 正直 2.x でも callable なんて使ってなかったからどうでもいい。 EAFPってやつだ。
179 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 01:32:36 ] レスありがとうございます。 EAFPという考え方、初めて知りました。 Googleで調べたら、いろいろ勉強になりました。 そもそもオブジェクトの属性が持つかどうかをチェックするよりは、 try, ecept構文で実行して、例外を補足するスタイルが推奨されているんですね。
180 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 08:03:08 ] >>175 > 一万接続なんて、スクリプトじゃむりぽ Erlangなんかの実績はあるよ。
181 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 08:34:59 ] 魚病理学者って何だ?
182 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 09:57:42 ] pass
183 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 11:36:33 ] 10k問題って西暦で10000年になって桁が増えるときの問題かと思ったぜ
184 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 14:29:48 ] 10種類も苦しいことがあるなんてどんな業界だよ。
185 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 14:42:07 ] 休憩がない、帰れない、給料安い、休暇(取れ)ない、雇用不安定 キリがない、規則が理不尽、経費が自腹、心を病む、過労死 で10kじゃね
186 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 14:51:47 ] >>185 おいおい、「彼女ができない」 が抜けてるぞ
187 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 14:54:28 ] 「彼女(or結婚)できない」、すっかり忘れてたよ
188 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 20:50:30 ] Erlangでいけるなら stackless + libev でいけるだろ、たぶん、きっと
189 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 20:51:29 ] >>157 これ見ると、概してCよりC++のほうが早いと思って良いのかなぁ。
190 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:04:40 ] >>188 有望ではあるよね。 C10K問題への対策の一つが高次並列化なんだが、stacklessが 変数使い捨てを強化すれば、並列化との相性が良くなる。
191 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:08:43 ] C10K問題対策って普通単にサーバ分散させるだけじゃねえの?
192 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:13:41 ] >>185-191 C10K: >>185 - 規則が理不尽 + 彼女ができない + コーディング規則が理不尽
193 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:26:10 ] >>191 静的コンテンツを同時に多数同時に見てもらうだけの時代はそれで済む事もあったけど、 例えば「10万人同時ログイン&互いに同じ関心を持つ者のグループをダイナミックに」 などとやろうとすると、別の手が必要。 関数型言語が並列化と相性がいいんで、stacklessみたいなのが関数型のいい所を 取り込んでくれるといいな、というのが感想。
194 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:06:09 ] 10万人同時ログインってw GLAYの幕張ライブやないねんからw
195 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:14:08 ] チャットみたいなもんか? よくわかんねえけど 10万人で一緒にチャットする必要は感じないが…… 今の大規模サービスって別にダイナミックコンテンツでも 普通にスケールさせてないか? 勿論サーバ分散させて
196 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:38:39 ] 少数のサーバーに集中 ↓ 安価な多数のサーバーに分散するといいぜ ↓ でも、物理メンテ大変だし、あんまり安いマシンじゃなくて ちょっと高級な中グレードのマシンで台数減らした方がよくね? (イマココ)
197 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:08:25 ] C10K問題の先駆けは既に、Skype、Twitterなどでも出始めてる。 10万人というのは一例で、従来型サービスの延長じゃない事を スケールさせたい場合の問題の一つ。
198 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:44:25 ] あんまり言語とは関係ない話になってるなw
199 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:07:49 ] 10万人同時チャットってwww 忙しすぎw
200 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 11:41:28 ] ちょっと面白そうだな>10万人チャット
201 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 12:53:56 ] 2chのスレの一番速い流れでスレあたり1000人だもんな。
202 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 13:35:13 ] 人数の多いチャット部屋覗いたことあるが、大半はROM専 数人が発言しまくりで、残りは単発発言の奴かな 余程盛り上がる話題が無いとそんなにログ流れんし ログが流れる時ってのは会話が成立しない祭状態で 会話したい奴は「特定の相手とのみ会話する機能」使って身内話
203 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 14:17:58 ] 10KのKはKOBITOのK。
204 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 16:40:23 ] TwitterのPublic Timelineがある意味10万人チャットみたいなものか
205 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 17:50:41 ] 聖徳太子「10Kまで同時通話おk」
206 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 20:37:20 ] pythonでhtmlを処理しようと思うんだがどういう方法がベターなの?
207 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 20:37:35 ] >>189 Linusの回答 tabesugi.net/memo/2009/1a.html オリジナル lwn.net/Articles/249460/
208 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 20:53:57 ] C++のそういうネタは好きw
209 名前:デフォルトの名無しさん [2009/02/24(火) 23:45:18 ] ネストした関数をunittestモジュールで外からテストにかける方法って ない?
210 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 00:23:43 ] BeautifulSoupが流行ってる