静かなる名辞

pythonとプログラミングのこと


【python】「{}」はdictだからな! 間違えるんじゃねえぞ!

ことのあらまし

 pythonって綺麗な文法だと思ってたけど、ちょっとこれは酷いと思った。

>>> type(eval("{}"))
<class 'dict'>
>>> type(eval("{1,2,3}"))
<class 'set'>

 僕の言いたいことがわかるだろうか。

>>> hoge = {} # すごくsetに見える

 率直に言って事故の元である。というか、ついさっきこれに引っかかって、こんな記事を書いてる。

対策

 というほどのことではないが、

>>> set()
set()
>>> dict()
{}

 空setが欲しい、空dictが欲しいときは明示的にクラスインスタンスとして生成すると可読性が上がると思います。