pythonグローバル変数vsローカル変数
6535 ワード
## --* -- coding: utf-8 --*--
def test():
print(val)
val = 99
test()
出力:
99
関数内でグローバル変数を変更すると、エラーが発生します.
# --*-- coding: utf-8 --*--
def test():
val += 1
print(val)
val = 99
test()
print(val)
エラー出力:
Traceback (most recent call last):
File "C:\Users\ZZWfree\Desktop\test.py", line 7, in <module>
test()
File "C:\Users\ZZWfree\Desktop\test.py", line 3, in test
val += 1
UnboundLocalError: local variable 'val' referenced before assignment
# --*-- coding: utf-8 --*--
def test():
output.append('zzw')
print(output)
output = []
test()
print(output)
しゅつりょく
['zzw']
['zzw']
関数内でlistグローバル変数を再定義すると、その変数は自動的にローカル変数になり、関数外の変数とは関係ありません.
# --*-- coding: utf-8 --*--
def test():
output = ['b']
output.append('zzw')
print(output)
output = ['a']
test()
print(output)
しゅつりょく
['b', 'zzw']
['a']
# --*-- coding: utf-8 --*--
def test():
global val
val += 1
print(val)
val = 99
test()
print(val)
しゅつりょく
100
100