【发布时间】:2016-12-28 20:40:04
【问题描述】:
我正在尝试对定义的变量进行加减运算,但我不知道如何用新值覆盖旧值。
a = 15
def test():
a = a +10
print ( a )
test()
错误信息:
Traceback (most recent call last):
File "test.py", line 7, in <module>
test()
File "test.py", line 4, in test
a = a +10
UnboundLocalError: local variable 'a' referenced before assignment
【问题讨论】:
-
加号后面可能需要一个空格。如果符号没有用空格分隔,Swift 也会报错。
-
请将图片中的代码作为文本添加到问题本身中。
-
这个问题包括期望的行为、特定的问题或错误,并且除非我们真的在一行上分叉,否则是重现它所需的最短代码。不可否认,这是对@approxiblue 引用的问题的欺骗,但可能是一个更好的问题,因为该问题使用了增强分配(对于初学者来说,错误消息根本没有意义),并且接受的答案不负责任地建议只使用
global或nonlocal而不是首先避免全局变量。 -
我已经投票决定重新开放。虽然一个肯定是另一个的欺骗,但我认为引用的问题应该被标记为这个问题的欺骗,因为它不太清楚,接受的答案很糟糕,而且它目前被标记为欺骗的问题是更糟糕。有关此基本原理的背景信息,请参阅 meta.stackoverflow.com/questions/251938/…。
标签: python python-3.x scope