Pythonについて(アンチ専用)

■ このスレッドは過去ログ倉庫に格納されています
2008/02/21(木) 10:24:06
Pythonが嫌いな人のためのスレッドです。

■関連スレ
Rubyについて(アンチ専用) Part002
http://pc11.2ch.net/test/read.cgi/tech/1200210768/
371デフォルトの名無しさん
垢版 |
2008/08/05(火) 15:04:22
Python恨まれすぎ
2008/08/05(火) 15:14:15
Ruby厨房の仕業ですか
373デフォルトの名無しさん
垢版 |
2008/08/05(火) 15:38:04
Pythonスレの荒らし、俺の予想
2007年 6月 2ちゃんねるを本格的に始める
     6月 過去ログが見れないことに腹を立て●を購入
     12月 VIP初体験
2008年 8月3日 IDが簡単に変更できることを知る
      同日 東方シリーズ総合スレッドを荒らす
8月4日 マクロを使って本格的に荒らす
  現在 ム板で個人的に気に入らないPythonをスレを潰しにかかる
2008/08/07(木) 15:52:40
ちょっと実践Python立ち読みしてくる
2008/08/19(火) 00:23:19
いまさらで良いので誰か
 Pythonを256倍使いこなす本 〜愛多憎生編〜
とか書いてよ。
2008/08/19(火) 00:51:01
256倍シリーズはどうもあの真ん中に大きな字で何度も強調するスタイルが嫌だ
2008/08/20(水) 12:57:35
あれがなかったら256本じゃないだろ
2008/08/22(金) 09:34:38
あれを抜いて2.56倍本を...
2008/08/23(土) 15:45:53
256倍シリーズはC以外おもしろくなかった
2008/08/23(土) 16:23:42
AWK本は名著
2008/08/28(木) 02:03:09
うむ
2008/10/26(日) 20:28:40
アンチスレ平和すぎだろ
2008/12/08(月) 19:13:47
Time flies like an arrow.
2008/12/24(水) 16:09:12
>>382
安置
2008/12/24(水) 20:46:38
3.0が思ったほど遊べなくてガックリ。
互換性をきるなら、もっとババーン、キャーみたいなのやってくれれば良いのに。
2008/12/24(水) 21:17:49
Python系でも後発Booとか見ると結構いい感じなんだよな
defで匿名関数定義できてPythonのlambdaみたいな制限もねーし
Lispのマクロみたいなノリでメタプログラミングっぽいことも出来るみてーだし

後、Pythonは常にselfとか書かせるぐらいなら、束縛と代入で
:=, =みたいに構文分けるかletとか書かせるようにして欲しかった
ミスに弱いし、global文とかnonlocal文とか場当たり的で醜いよ
2008/12/25(木) 19:58:12
そうだね
2009/01/03(土) 22:49:50
Booは名前がなあ
いくら中身が良くても名前だけでやる気が起こらないって恐ろしい
2009/01/13(火) 00:24:14
どういうやつ?
取り込み中なんで、あとでくわしく
2009/02/05(木) 17:35:28
取り込みは終わりましたか?
391デフォルトの名無しさん
垢版 |
2009/02/17(火) 15:11:14
:=, =
2009/03/20(金) 16:57:05
アンチではないけど、
Python ドキュメント(Python ライブラリリファレンス等)が
どうも見難くてたまらん。
2009/03/20(金) 17:29:31
そうだね
あれじゃ目的のものにたどり着けないよね
2009/03/20(金) 17:33:56
Pythonのドキュメントは愛がたりない
Rubyみたいなドキュメントになってほしい
2009/03/20(金) 18:44:16
未完成な「Rubyリファレンスマニュアル刷新計画 chm版」というのを
ダウンロードしてみたけど、Rubyのほうがちゃんと気合い入ってそうだ。
2009/03/20(金) 18:51:11
>>392
http://docs.python.org/search.html?q=defaultdict

2.6系からドキュメントシステムが変わりました…
Json のindexを構築して検索してるそうな…
sphinx + Pygments とかでぐぐると嬉しい
http://sphinx.pocoo.org/
2009/03/20(金) 19:46:37
左側の無駄なスペース無くして欲しいんだが
それにフォントもでかくなってて読みにくい
使い勝手は良くなったのかも知れないが
生理的に受け付けなくなりつつある
2009/03/20(金) 19:48:17
もっとサクサク動くようにするべきだと思う
2009/03/20(金) 23:12:49
オライリー本のヘビの絵がきもい。
2009/03/20(金) 23:23:39
Twisted本はさらにひどい。
しかしそれはオライリーに文句を言うべき
2009/03/20(金) 23:38:10
>>397
俺もそれはウザいと思っていたのでスタイルシート弄った
2009/03/21(土) 00:36:31
前は気軽にプリントアウト出来てたのに
2009/03/25(水) 05:04:28
>401
こういう時、ユーザスタイルシートって有難いな
404デフォルトの名無しさん
垢版 |
2009/04/10(金) 08:27:17
>>397
>左側の無駄なスペース
目次用のエリアじゃないのか?
405デフォルトの名無しさん
垢版 |
2009/04/29(水) 06:08:22
pythonは速いと聞いたので覚えようと思ったけど文法が訳ワカメで難しすぎて無理
もっと、こっからここまでをバシっと決めてくれないかなぁ
2009/04/29(水) 12:54:20
Cにしとけ
2009/04/29(水) 19:42:51
早いのがいいならFORTRANだろ
2009/05/02(土) 01:48:08
>>405
Pythonで文法がわかりにくいというのは初めて聞いた
具体的にどこがわかりにくいのだろうか
2009/05/02(土) 12:18:35
endがなくてキモい
2009/05/02(土) 12:49:56
Pascal信者乙
2009/05/02(土) 18:43:36
Pascal 信者であれば begin, end が無いという
Ruby 信者でしょ
412デフォルトの名無しさん
垢版 |
2009/05/05(火) 22:06:13
行の開始位置が構造に関わるとか
COBOLかFORTRAN並みに古すぎとか
思ってたけど慣れるとなんでもない
endの方がきもい
漏れはRubyでも{}使う派なんだけど
Rubyは{}じゃだめでdo〜endでしか書けないケースが結構ありすぎ
2009/05/05(火) 23:27:06
>>412
Python型の行頭位置の規則(オフサイドルール)は、
言語の系譜としては現代的なものだぞ。他にHaskellとか。
2009/05/27(水) 11:52:20
> Rubyは{}じゃだめでdo〜endでしか書けないケースが結構ありすぎ
逆じゃないか?
Rubyの見栄え上do〜endのほうが良いなぁと思うのに、{}じゃないと書けないケースが多いと思う
2009/05/27(水) 11:58:10
多分個人のコーディングの癖(好むメソッドの組み合わせパターン)で
違ってくると思う。
2009/05/27(水) 13:38:02
>>412 書いたの漏れなんだが
なんであんなこと書いたのか
もう思い出せない orz
417デフォルトの名無しさん
垢版 |
2009/05/27(水) 17:06:12
>>409
end = Noneと書けばendが書けるよ
2009/05/27(水) 18:47:44
pass で閉じてる漏れは勝ち組み
2009/05/28(木) 10:06:56
>>414
foo hoge {
}
でfooにブロックをつけたいとかいうパターンだろう。
rake絡みなんかでよくある質問だな。
2009/05/28(木) 19:01:04
pythonはforが大杉。
2009/05/28(木) 19:29:27
安置というより無知を曝すスレだな
2009/06/08(月) 03:20:10
pythonスレはアforが大杉
2009/06/08(月) 03:21:36
自愛するべき
2009/06/08(月) 11:45:51
>>420
for で充分だから ブロック構文いらない。

Ruby厨はよく Pythonには○○が無いって叩くけど、大抵そういう機能は
Python-Idea ML で必要・不要が議論された結果不要と判断されている
ので、その機能が無くても同じ生産性をPythonは既に実現している。
2009/06/08(月) 13:22:44
for多すぎって[ ]の中じゃないの?
2009/06/08(月) 20:46:12
>>424
そうでもないだろ。

Pythonの配列操作がRubyと比べて面倒くさい
ttp://d.hatena.ne.jp/edvakf/20090405/1238885788

それよりPythonはsuperのキモさをなんとかしてくれんかいのう。
なんでsuper()に親クラス名を指定しなきゃいかんの?ba
2009/06/08(月) 21:00:08
>>426
multi-inheritence dakara
2009/06/08(月) 21:06:58
>>427
多重継承はまったく関係ないよ。
つうかなんで多重継承が関係してくんの?
2009/06/08(月) 21:07:27
>>426
> Pythonの配列操作がRubyと比べて面倒くさい
> ttp://d.hatena.ne.jp/edvakf/20090405/1238885788

つ '-'.join(["%s"%(x) for x in sorted(a, reverse=True)])
2009/06/08(月) 21:08:35
私Ruby厨だけどsuperに関しては
superとsuper()で引数が違ってくるRubyの方がキモイと思う
2009/06/08(月) 21:13:13
>>426
> なんでsuper()に親クラス名を指定しなきゃいかんの?ba

Smalltalk系のようにsuperがcaller側のmethodのbindに依存するほうが
よほど言語設計として汚ないと思うが?
2009/06/08(月) 22:07:31
>>431
なんで汚いん?
「親クラス」という抽象的な表現ができず、具体的なクラス名をいちいち書かないといけないことは汚くないの?
2009/06/08(月) 22:15:57
明示的なだけで汚くはないだろ
多重継承したらどの親クラスのメソッド呼ぶのかさえ曖昧になるし
Python3からは引数省略してsuper().methできるらしいけど
2009/06/08(月) 22:30:34
>>433
>明示的なだけで汚くはないだろ
明示しなきゃいけないんだから汚いだろー
なんで抽象化されてないのさ

>多重継承したらどの親クラスのメソッド呼ぶのかさえ曖昧になるし
は?そんなのふつうのメソッド呼び出しでも一緒じゃん

class A(object):
 def f(self): print 'A'

class B(object):
 def f(self): print 'B'

class X(A, B):
 def g(self):
  self.f()   # どの親クラスのメソッド呼ぶのか曖昧なの?ねえPythonってそうなの?

ふつうのメソッド呼び出しで行なっているのと同じルールを使って、親クラスのメソッドを呼べばいいだけじゃん。
もしPythonが本当に『どの親クラスのメソッド呼ぶのかさえ曖昧になる』んだったら、
もうsuper関係なしに、オブジェクト指向言語として失格だろwwwww

>Python3からは引数省略してsuper().methできるらしいけど

やっぱり多重継承関係ないじゃないかwwwww
>>433は2行目で書いたことを3行目で忘れてるおばかさんーwwwww
2009/06/09(火) 00:19:05
ようやくアンチスレらしくなって妙にうれしい
2009/06/09(火) 01:58:52
>>434
そうだね、だから Python 3.0 では super() に self を明示しなくても良くなるよ。
今の Python は、 Python 2.2 までの古いクラスと新しいクラスが混在していて、
後方互換性の為には明示的にクラス名を書かないといけないの。
2009/06/09(火) 02:16:01
古いクラスと新しいクラスが混在って要・不要が議論されたあげくにそれか?
自慢げに語ることじゃないだろ。 よほど言語設計として汚ないと思うが?
2009/06/09(火) 02:22:03
2.xまで混在
3は新だけ
2009/06/09(火) 03:15:41
>>437
Rubyとちがって、過去の資産を大切にするからね。
後方互換性を切る Py3k も数年がかりのプロジェクトになる。

新クラスは、必要と判断されたから導入された。でも、後方互換性の為に
旧クラスは残されている。
ruby の メソッドチェーンやブロック構文は、Pythonに導入しても「一部の人が
気持ちいい」とか「ときどき数タイプ減らせる」程度の効果しか認められないから
Pythonには導入されない。
2009/06/09(火) 03:20:53
>>426
> Pythonの配列操作がRubyと比べて面倒くさい
> ttp://d.hatena.ne.jp/edvakf/20090405/1238885788
メソッドチェーンになれたRubyistがメソッドチェーンを無いことを反射的に
批判しているだけだろ。

文を分けないで関数を無制限にゴチャゴチャ繋げるのはPythonicではない。
一息に書いて良いのは内包表記で簡潔に書ける範囲までで、それ以上は
文を分けるべき。文を分けたることによって数タイプ増えるが、その分可視性は
向上するので、トータルの生産性に大きな差は無い。それなら、すっきりした
書き方だけを使うのが Pythonic way.
2009/06/09(火) 04:00:06
久々に伸びてると思ったらなんじゃこりゃ
2009/06/09(火) 04:41:11
>>432
同じ表現式の意味がバインドされているクラスによって変化するのは美しくないだろ。
言語仕様上の透明性を求めるか、表現式としての簡便さを求めるかの言語仕様上のトレードオフでしょ。
2009/06/09(火) 04:43:34
>>426
> Pythonの配列操作がRubyと比べて面倒くさい
> ttp://d.hatena.ne.jp/edvakf/20090405/1238885788

単に初学者が前に習った言語の作法にひきずられて
今学んでいる言語の流儀に逆らってるだけに見える。
444デフォルトの名無しさん
垢版 |
2009/06/09(火) 05:03:16
rubyやJavaのメソッドチェーン使うときにいつも気になるのは
途中でメソッドの戻り値がぬるぽになるんじゃないかってところ
だからpythonで文を分けて毎回if not hogeしている漏れは勝ち組
445デフォルトの名無しさん
垢版 |
2009/06/09(火) 05:13:49
>なんか今更この記事にコメントが付きだしたのですが、どこかで紹介されたのでしょうか?
笑える

>>426
> Pythonの配列操作がRubyと比べて面倒くさい
> ttp://d.hatena.ne.jp/edvakf/20090405/1238885788

ruby
a.sort().reverse().map{|x| x.to_s}.join('-')

python
'-'.join(map(lambda x:str(x), reversed(sorted(a))))
'-'.join(str(x) for x in reveresed(sorted(a)))
'-'.join('%s'%(x) for x in sorted(a, reverse=True))

確かpythonって「やりかたはひとつ」を売りにしてなかったっけ?
2009/06/09(火) 07:12:26
>>436
なるほど、それが理由なのか。
じゃあ最初にオブジェクト指向機能を導入した時の設計が間違ってたんだな。
とりあえず「多重継承したらどの親クラスのメソッド呼ぶのかさえ曖昧になる」と言いはるバカは消えろwww

>>439
>Rubyとちがって、過去の資産を大切にするからね。
ちーがーうー、最初の設計が間違っていたから仕方なく過去を引きずっているだけwww
それを「過去の資産を大切に」とかバカまるだしwww
ほんとに大切にするなら3.0でも互換性をとっとけwww

>>442
>同じ表現式の意味がバインドされているクラスによって変化するのは美しくないだろ。

ほんとにそう思う?ほんとにそう思うなら、親クラス名が省略できるようになった3.0は美しくないの?
442にとっては3.0の仕様が美しくないそうだよwwww またバカ丸出しwwwwww
Pythonistaは442みたいなのをだまらせとけやwww 身内の恥さらしだぞwwwwww
2009/06/09(火) 07:45:28
雑草が増えたな
2009/06/09(火) 08:14:19
>>445
>python
>'-'.join(map(lambda x:str(x), reversed(sorted(a))))
>'-'.join(str(x) for x in reveresed(sorted(a)))
>'-'.join('%s'%(x) for x in sorted(a, reverse=True))
>
>確かpythonって「やりかたはひとつ」を売りにしてなかったっけ?

厳密にひとつ、というわけじゃなくて、だいたい一つ、ぐらいの意味でいいんじゃない?
これくらいだったら十分許容範囲だろ。許してやれよ。


> ruby
> a.sort().reverse().map{|x| x.to_s}.join('-')

これは各々の処理が左から右にきれいに流れるから読みやすいんだよね。
Pythonのは関数呼び出しが入れ子になっているからわかりずらい。
Python狂信者はこの事実を認めようとしないだろうけど。

>>440
>一息に書いて良いのは内包表記で簡潔に書ける範囲までで、それ以上は
>文を分けるべき。
それはPython限定の話だよね? 一息に書きにくい言語はそうすべきだけど、
一息にかける言語だったらそんなことに縛られる必要はまるでない。

>> 443
> 単に初学者が前に習った言語の作法にひきずられて
> 今学んでいる言語の流儀に逆らってるだけに見える。
こういうやつがいるかぎりは、争いはいつまでたっても終わんないだろうね。
2009/06/09(火) 08:15:08
ある種の若い男の子にありがちな語り口だよね。
わかるまいわかるまいと頑張りつつ、わからせる気も無い、のっけからの平行線狙いって。
場を味方につけつつ展開しないと、単に「こいつ一人が理解力無いだけ」って判断されて
オシマイなんだけど。
2009/06/09(火) 08:17:25
one liner書きにくすぎ
インデント氏ね
2009/06/09(火) 08:47:16
>>448
> > ruby
> > a.sort().reverse().map{|x| x.to_s}.join('-')
>
> これは各々の処理が左から右にきれいに流れるから読みやすいんだよね。
> Pythonのは関数呼び出しが入れ子になっているからわかりずらい。
> Python狂信者はこの事実を認めようとしないだろうけど。

python
'-'.join(["%s"%(x) for x in sorted(a, reverse=True)])

これは全体の処理がトップダウンにきれいに流れるから読みやすいんだよね。
rubyのように処理順にすると最後にならないと全体の仕事がわからずに読み進めなきゃならない。
俺はruby狂信者なんてレッテルを貼ったりしないけど。
2009/06/09(火) 09:15:13
>>445
その例だと、一番目は lambda が不要で
'-'.join(map(str, sorted(a, reverse=True))) # もしくは itertools.imap

二番目は reversed が一つ余計で
'-'.join(str(x) for x in sorted(a, reverse=True))

三番目の % 記法を無理やり使うのは無いな。少なくとも (x,) としないと、 x 自体がタプル
だったときに問題が起こる。
2009/06/09(火) 09:16:30
>>444
確かに、Pythonの一行 = 1文 = 一つの事 という文化は、
例外発生時にスタックトレースを見るとすぐにどこが例外を
出したか特定できるという副次的な効果もあるねw
2009/06/09(火) 09:24:33
>>448
> > ruby
> > a.sort().reverse().map{|x| x.to_s}.join('-')
>
> これは各々の処理が左から右にきれいに流れるから読みやすいんだよね。
> Pythonのは関数呼び出しが入れ子になっているからわかりずらい。
> Python狂信者はこの事実を認めようとしないだろうけど。

「左から右に」っていうのは Ruby厨がよく言うけど、メソッドチェーンのとき「だけ」
左から右なんだよね。なんで代入は右から左のままなの?代入演算子を => に
すれば、
s = a.sort.reverse
s.map{|x| x.to_s}.join('-')
という風に代入が混じっていても、
a.sort.reverse=>s.map{|x| x.to_s}.join('-')
って書けるのにさ。
結局、Matzの「あ、こう書けるとおもしろいんじゃね?」というのに後付けで読みやすい
とか言っちゃってる気がしてならない。

あと、リストの要素を「*文字列として* 連結する」というメソッドがリストのメソッドなのは
どうなんだ? Python の ''.join() の方が、文字列に関する機能は文字列のメソッドという
方が分かり易いし正しいと思うぞ。
455デフォルトの名無しさん
垢版 |
2009/06/09(火) 12:21:12
末尾に!を付けると代入になるとかいいんじゃね
2009/06/09(火) 12:31:38
>>454
「左から右」が好きなのは最近の人っつかRails厨に多い気がする
(s = a.sort.reverse).map{|x| x.to_s}.join('-')で別に気にならないな
理屈は後付けで結局Matzの思いつきが多いのは然りごもっとも

> あと、リストの要素を「*文字列として* 連結する」というメソッドがリストのメソッドなのは
num.to_sとかの延長で考えると、別にいいんじゃねと思ってる
機能よりは主体がどっちなのかで分けてる感じかな、よくわからんが
2009/06/09(火) 12:40:48
*リスト*を連結するのがstrのメソッドなのはいいのか?
2009/06/09(火) 13:06:10
リストの連結(リストをいくつか受け取って連結したリストを返す)メソッドがstrに定義されてる
言語なんてあるのか?
2009/06/09(火) 14:29:46
>>444
がっ!
460デフォルトの名無しさん
垢版 |
2009/06/09(火) 14:37:02
>>453
それはたまたま副次的な効果が出たんじゃなくて
効果を期待してそのために文を分けてると思ってたw
2009/06/09(火) 14:38:58
> ruby
> a.sort().reverse().map{|x| x.to_s}.join('-')

これ成城に動いてるときはいいんだけど
バグが出たら何が原因か分かりづらいぜ?
2009/06/09(火) 14:41:05
>>454
>結局、Matzの「あ、こう書けるとおもしろいんじゃね?」というのに後付けで読みやすい
>とか言っちゃってる気がしてならない。

そういう理由だったの?
Smalltalk から影響受けたんだと思ってたお
2009/06/09(火) 14:42:34
>>457
リスト以外でも、イテレートできればなんでも連結できるよ?
2009/06/09(火) 14:43:05
>>454
>「左から右に」っていうのは Ruby厨がよく言うけど、メソッドチェーンのとき「だけ」左から右なんだよね。
なんですべてを左から右にしようとしてんの?別に右から左でもいいけどさ、個々の処理がきれいに流れていることが重要なんじゃん。
unixのコマンドラインでパイプを使って処理を連結する感覚と一緒。Pythonとかだとそれがないってだけ。

>なんで代入は右から左のままなの?代入演算子を => にすれば、
>s = a.sort.reverse
>s.map{|x| x.to_s}.join('-')
>という風に代入が混じっていても、
>a.sort.reverse=>s.map{|x| x.to_s}.join('-')
>って書けるのにさ。
そんなふうに書くわけないじゃん。
(s = a.sort.reverse).map{|x| x.to_s}.join('-')
でいいだろ。自分で書いてて気づかないのか?

>結局、Matzの「あ、こう書けるとおもしろいんじゃね?」というのに後付けで読みやすい
>とか言っちゃってる気がしてならない。
いや実際読みやすいだろ。

>あと、リストの要素を「*文字列として* 連結する」というメソッドがリストのメソッドなのはどうなんだ?
連結した結果として文字列以外になんかあるか?joinは*要素を連結して*文字列として返すメソッドなんだから、リストのメソッドで何にもおかしくない。

> Python の ''.join() の方が、文字列に関する機能は文字列のメソッドという方が分かり易いし正しいと思うぞ。
戻り値が文字列だからといって、要素を連結する機能を文字列に関する機能と考えるほうがどうかしてる。
joinはあくまで「要素を連結する」ためのメソッド。リストのメソッドで何が悪い。

>>452
おれもlambda x: str(x) とか書いてた!これはいらないのか!ちょー参考になった。さんくす。
2009/06/09(火) 14:44:06
>>458
Java
2009/06/09(火) 14:47:34
python は lisp と謂われる所以ですな
2009/06/09(火) 14:48:38
>>452
今回はたまたまそれで良かった訳だが
str() 以上に複雑なことさせようとしたら lambda 必要になるよね?
468デフォルトの名無しさん
垢版 |
2009/06/09(火) 14:49:24
理想ばっか語ってても仕方ないよ
2009/06/09(火) 14:51:33
>>464
例えば、xhtml を動的に生成する場合、
data = [tag.P(t) for t in "foo bar baz".split()]
contents = tag.HR.join(data)
print str(contents)
で、
<p>foo</p>
<hr/>
<p>bar</p>
<hr/>
<p>baz</p>
とか。シーケンシャルな構造で要素をセパレータを挟みながら並べたいってのは
文字列処理にしか出てこないとは限らないだろ。
2009/06/09(火) 14:53:58
>>467
それ以上に複雑になったら、mapではなくてリスト内包を使う。
リスト内包でもすっきり書けないくらい複雑になったら、ローカルで関数を定義して
それを map する。

Pythonの関数は普通の変数と同じ名前空間に存在しているので扱いが楽。
2009/06/09(火) 15:01:41
>>464
> (s = a.sort.reverse).map{|x| x.to_s}.join('-')
これ、動作を追おうとすると、 a.sort.reverse までは左から右によんで、
そっからいきなり一番左に行って、代入結果に対してさらに右にとんで
処理しているんだよね?

俺は「左から右」のメソッドチェーンがPythonicな書き方に比べて特に
読みやすいとは思わないけど、もし「左から右に流れるように処理が連結
できる」のが本当に読みやすいのであれば、代入式も代入結果が式の値
なんだから代入結果を右に持っていくべきだよね。

Ruby厨ってRubyこそ正義って思って思考停止してない?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。