Pythonのglobal文
外部でグローバル変数 i があるとします。
また、この変数に1を加算する関数 func があります:
i = 0
def func():
i += 1 # エラーが発生します
return i
このコードを実行するとエラーが返されます。
なぜなら、外部で宣言されたグローバルな i と、
1 が加算されるローカル変数 i が衝突するためです。
このローカル変数はまだ宣言されていません。
この問題を解決し、関数がグローバル変数を確実に操作するようにするには、
global 文を使用する必要があります。
この文は、それが記述された現在のコードブロック全体に対して有効な宣言です。
前の例を、関数本体で global を宣言して書き直してみましょう:
def func():
global i
i += 1
return i
print(func()) # 1を出力します
次のコードで、とあるプログラマーは間違いを犯しています:
num = 4
def func():
num *= 2
return num
print(func())
このコードの何が問題でしょうか?コード作者のエラーを見つけて修正してください。
次のコードで、とあるプログラマーは間違いを犯しています:
num = 10
def func():
num -= 3
return i
print(func())
このコードの何が問題でしょうか?コード作者のエラーを見つけて修正してください。