| 
									 × [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。  | 
							
| 
									 Pythonの変数のスコープについてなぜグローバル変数を用いるためにglobalをつける必要があるか考察してみた。 まず、C言語の関数から見てみよう int func()
{
    int L;
    L = 23;
    printf("%d%s", L, G); //出力:"23bit"
}
C言語において、変数は「Use with definition」である。 次に、VBの関数を見てみよう。 Sub func
    L = 23
    print L & G ’出力:"23bit"
End Sub
VBにおいて、Option Explicitをつけない場合、変数は「Use without definition」である。 いよいよPythonの関数を見てみよう def func():
    L = 23
    print L,G #出力:"23bit"
Pythonにおいて、変数は「Use with definition. But writing is definition.」である。 実際に変数Gには何が設定されているのか知りたければGで検索すれば設定場所がひっかかる。 def func2():
    global G
    G = "bit"
global変数に値を設定する場合、ローカル変数の「値を設定して使う」というルールに参加させるため、globalキーワードを用いる。 なぜ、こんな仕様になったのか考えてみると、システム屋ではない人が作ってもPythonは整った文になるように設計されているということである。 さらに次のルールが生まれる。 とてもよく考えられているルールではないだろうか? PR  | 
							
| 
								 | 
						
| 
								
																 忍者ブログ [PR]  | 
						


