代码如下:
a = "a"
def foo(c):
# global a
if c >5:
a = "b"
print(a)
foo(1)
执行结果
UnboundLocalError: local variable 'a' referenced before assignment
函数外有全局变量a,当传入1时,判断条件触发,不满足条件,执行出错,加上 global执行没错,传入大于5的时后执行没错,猜测是有尝试重新声明a的情况,虽然没有触发但是导致命名冲突,且并没有赋值成功。
参考链接: link.
博客讨论了Python中函数内部使用全局变量时遇到的UnboundLocalError问题。当函数内部试图修改全局变量但条件未满足时,未正确声明`global`关键字会导致命名冲突。文章通过一个代码示例解释了这个问题,并指出了解决方法:在函数内使用`global`声明全局变量。
3139

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



