とまと あんらいぷ…

エンジニアの活動記録とかつぶやきとか

GitHub
スポンサードリンク

pythonのglobal変数の挙動確認

WindowsでPython シリーズ その15



本日はPythonにおけるglobal変数について挙動確認しました。

グローバル変数の書き方


変数については過去のエントリで多少かいてますが、
pythonでもグローバル変数が存在します。

関数の中以外で宣言すればそれはグローバルになるわけですが
pythonではglobalキーワードを使えば、それがglobal変数として認識されるようです。



実行結果
pythonのglobal変数の挙動確認

まず、glovar = "グローバルだよ"で、グローバル変数として指定しています。
この変数はプログラムのドコからでも参照できます。

次に defを使って関数を2つ宣言

global_change() で、global変数で"あろう"変数に値をセットしています。
ですがこの関数を呼出後、glovarをprint()しても "グローバルだよ"という結果になります。
これは、見ての通り、関数の中で宣言したglovarは、
あくまでも関数の中で宣言した変数に対しての処理という扱いだからですね。
これをローカル変数といいます。

同じ名前の変数を宣言して、バグにならないようにしてるということです。

関数内でglobal変数を操作する


次にglobal_change2() では、global変数で"あろう"変数に値をセットしています。
その前に、global glovar と書いて、関数内のglovarはグローバルなのだと指定しています。

結果として、"ローカルだよ"という出力。
これは、グローバル変数がローカル変数ではないという事を宣言できた結果ですね。

pythonでは、グローバル変数はきちんと明示する


今日はこれでおしまいですが、
pythonに限らずグローバル変数は意識して使わないと、バグのもとになりますので、
ローカル変数内で明示的に指定させるプログラムの仕様はいいなと思いました。

ではでは!



▼この記事を読んだ方は、こんな記事も読んでいます。▼

スポンサードリンク

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://dalmore.blog7.fc2.com/tb.php/175-1b690240
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad