Doge log

Abby CTO 雑賀 力王のオフィシャルサイトです

builtinの小文字の話

うーん、これは歴史的経緯があってそーなってると思うのでどーしようもないのかな。
pythonのOOは後付けのはずなので昔のものをそのままひきずってるんだと思うなー。
まあ変えちゃうと相当動かなくなるプログラムでてきそうだし、だからといって別名でつけておくとどっち使っていいの?
みたいな混乱がおきるかも知れないって事でそのままなんだと思う。
pythonはわかやすいようにする文化なのであんましそーいうのは取り入れないはず)

まあ上書きできない方が問題なので別に好きにしていいんだと思うな。
別にキャンキャン騒ぐ事でもない。

別に変数で上書きされてもどーってことないしー。

list = 1

# 1
print list

# []
print __builtins__.list()

List = __builtins__.list

# []
print List()

ただbuiltinsをいじるのはあんまし良くないかなと思うけどねえ・・・。
(まあそれもpythonの文化といえば文化なのかも。)
モジュールの先頭に明示的に書いておく方がいいと思う。

まあでも他のpythonistaから読まれるとか考えると、「まあ一応他に合せておくかー」ってなってそーいう別名もつけなくなったりするのが
現状だったりするけどね。

あとlistとかdictとかをクラスのコンストラクタではなくファクトリ的な関数に捉えてる人がいそうって話もあったりする。
pythonはnewとか付かないのでそれが関数なのかクラスのコンストラクタなのかパッと見わからないからなー。
(小文字クラスを使うことで意図的そー思わせる話もあったり