なんとなくPythonがJavaScriptに似てる気がしてきてる今日このごろ。
後のループとかで使うために関数の先頭とかで空の変数だけ作っておきたい(関数宣言だけしたい)ってのに少しハマったのでメモ。
var
みたいな宣言文がPythonには無いので、変数だけ作ってみたらエラーになりました。
my_var
# => NameError: name 'my_var' is not defined
Pythonの変数は代入しないと作成されない。
Pythonの変数は型もなく、値を設定(代入)することで変数が作成されるという仕組みなようです。
つまり、何かしら代入しないと、その変数を探して「そんな名前の変数はない」とエラーを出すってことみたいです。
何かしら値を与えればOK
my_var = None
JavaScriptの変数巻き上げの癖で関数とかの先頭で変数定義したくなるので、同じような書き方しててハマってしましました。
先に使われる変数がある方が個人的には見通しが良いように感じるのですが、空文字''
ではなく、None
で変数を作成してもメモリ効率とかの面では良くないのでしょうか?
まぁ見通しが悪くなるくらい大きな関数作るなって話ですよね。。。
[参考]
- Is it possible only to declare a variable without assigning any value in Python? - Stack Overflow
- Pythonの変数に関して押さえておくべき基礎知識 | HEADBOOST
- 作者: フィリップ・K.ディック,大森望,Philip K. Dick
- 出版社/メーカー: 早川書房
- 発売日: 2013/11/08
- メディア: 文庫
- この商品を含むブログ (8件) を見る