a = 1
def test():
print(a)
if __name__ == "__main__":
global a
a = 2
test()
运行后,出现错误:
global a
^
SyntaxError: name ‘a’ is assigned to before global declaration
原因:
if __name__ == "__main__":
中的变量都是全局的,所以再一次声明global是错误的,系统会发出警告。
a = 1
def test():
print(a)
if __name__ == "__main__":
a = 2
test()
>> 2
函数内部更改全局变量的值:
a = 1
def test():
global a
a = 3
def test1():
print(a)
if __name__ == "__main__":
a = 2
test1()
test()
test1()
>>
2
3