4.1 名前づけと束縛 (naming and binding) によると、
ある名前がブロック内で束縛されている場合、名前はそのブロックにおけるローカル変数 (local variable) です。ある名前がモジュールレベルで束縛されている場合、名前はグローバル変数 (global variable) です。
6.13 global 文 によると、
global 文は、列挙した識別子をグローバル変数として解釈するよう指定することを意味します。 global を使わずにグローバル変数に代入を行うことは不可能です (…)
global 文で列挙する名前は、同じコードブロック中で、プログラムテキスト上 global 文より前に使ってはなりません。
試してみる。
hoge = 10 def test(): # ローカル変数 hoge = 1000 test() print hoge #=> 10 def test2(): # グローバル変数 global hoge hoge = 1000 test2() print hoge #=> 1000
PHP と同様か。
Ruby では、変数の前に $ を付けるとグローバル変数になる。(cf. 変数と定数 - Rubyリファレンスマニュアル)
0コメント:
コメントを投稿