Pythonのスコープ
- 前のページ Pythonのイテレーション
- 次のページ Pythonのモジュール
変数は作成された範囲内のみで使用できます。これをスコープと呼びます。
ローカルスコープ
関数内部で作成された変数はその関数のローカルスコープに属し、その関数内部でのみ使用できます。
例
関数内部で作成された変数はその関数内部で使用できます:
def myfunc(): x = 100 print(x) myfunc()
関数内の関数
上記の例のように、変数 x は関数外部では利用できませんが、関数内部のどの関数でも利用できます:
例
関数内の関数からローカル変数にアクセスできます:
def myfunc(): x = 100 def myinnerfunc(): print(x) myinnerfunc() myfunc()
グローバルスコープ
Python コードの主体で作成された変数はグローバル変数であり、グローバルスコープに属します。
グローバル変数はどの範囲(グローバルおよびローカル)でも利用可能です。
例
関数外部で作成された変数はグローバル変数であり、誰でも使用できます:
x = 100 def myfunc(): print(x) myfunc() print(x)
命名変数
関数内部および外部で同名の変数を使用する場合、Python はそれらを2つの異なる変数として見なします。1つはグローバル範囲で利用可能(関数外部)、もう1つはローカル範囲で利用可能(関数内部):
例
この関数はローカル変数 x を印刷し、その後コードはグローバル変数 x を印刷します:
x = 100 def myfunc(): x = 200 print(x) myfunc() print(x)
Global キーワード
グローバル変数を作成する必要があるが、ローカルスコープ内に卡っている場合は、global キーワードを使用できます。
global キーワードは変数をグローバル変数にします。
例
global キーワードを使用すると、その変数はグローバル範囲に属します:
def myfunc(): global x x = 100 myfunc() print(x)
また、関数内部でグローバル変数を変更する場合も、global キーワードを使用してください。
例
関数内部でグローバル変数の値を変更するには、global キーワードを使用してその変数を参照してください:
x = 100 def myfunc(): global x x = 200 myfunc() print(x)
- 前のページ Pythonのイテレーション
- 次のページ Pythonのモジュール