原因是在定义函数时,使用了与全局变量同名的局部变量
a = 10
b = 10
def A():
if b == 5:
a = 5
print(a)
a = A()
这时会报错 ‘UnboundLocalError: local variable ‘a’ referenced before assignment’
因为函数内部定义了一个与外部变量同名的变量,此时函数会把这个变量定义为局部变量,如果没有赋值则不能调用它。
给出不报错的情景
a = 10
b = 10
def A():
if b == 5:
c = 5
print(a)
a = A()

本文探讨了在Python编程中遇到的常见错误——UnboundLocalError,当函数内部定义的局部变量与全局变量同名时,如果没有初始化就使用,会导致此错误。通过示例解释了如何避免这种问题,强调了明确区分局部和全局变量的重要性。
2万+

被折叠的 条评论
为什么被折叠?



