def spam():
print(eggs)
eggs = 'spam local'
eggs = 'global'
spam()
出现这种错误,是全局变量和局部变量搞混淆了。
因为在spam()函数中,eggs已经被赋值,所以eggs被认为是局部变量,Python在运行print()语句时不会退回到使用全局变量eggs。
def spam():
print(eggs)
eggs = 'spam local'
eggs = 'global'
spam()
出现这种错误,是全局变量和局部变量搞混淆了。
因为在spam()函数中,eggs已经被赋值,所以eggs被认为是局部变量,Python在运行print()语句时不会退回到使用全局变量eggs。