関数内からグローバルスコープの変数にアクセスする

スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 |
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般

Pythonの変数スコープについて、前述しましたが、関数内からグローバルスコープの変数にアクセスする手段も、PHP同様に用意してあります。
書き方は、PHPなど他言語と同じように、global宣言を用います。

スポンサーリンク

def scope_python(a):
    global n
    n = a * 2
    return n
n = 5
print scope_python(n)
print n

上記コードでは、関数scope_python(a)の中で、「global n」とglobal宣言することで、グローバルスコープの変数にアクセスしています。
これにより、グローバル変数nを関数内で直接扱え、変更可能となります。
「global n」の宣言により、グローバル変数のnを関数内で取り扱う、と考えれば良いです。

実行結果。

10
10

このあたりも、PHPと同じですので、分かりやすいです。

ただし、関数内でグローバル変数を変更する書き方は、あまり好ましいコードではありません。
グローバル変数とローカル変数がごちゃごちゃになると、スパゲッティになりやすいですので、フレームワークなどでは、グローバル変数の利用を最小限に抑えるように設計されてあります。

スポンサーリンク
 
スポンサーリンク