Adding Variables Inside Functions for Python
本问题已经有最佳答案,请猛点这里访问。
我有一个变量a,我希望a加上b,就像这样:
1 | a = a + b |
现在,我的程序设置如下:
1 2 3 4 5 6 7 8 | a = 2 b = 3 def add() : a = a + b print(str(a)) add() |
每次我运行这个,我都会
1 2 3 4 | Traceback (most recent call last): File"<stdin>", line 8, in <module> File"<stdin>", line 5, in add UnboundLocalError: local variable 'a' referenced before assignment |
而不是
1 | 5 |
请解释一下我犯的明显错误。
这是因为一个叫做范围的东西。您可以阅读它,但本质上它意味着在函数内部,您可能无法访问外部定义的内容。
为了让函数知道这些变量,您需要将它们传入。试试这个:
1 2 3 4 5 6 7 8 | a = 2 b = 3 def add(x, y) : x = x + y print(str(x)) add(a, b) |
值得注意的是,这些值正被传递到函数中,但实际上它们本身并没有被修改。我不讨论变量传递给函数的方式的复杂性,但可以说,在这里调用
我猜你只是在学习如何做这些事情,你真的不想把所有事情都变成全球性的,或者你会陷入一个大混乱。
这里,
1 2 3 4 5 6 7 8 9 | a = 2 b = 3 def add(a, b) : a = a + b print(str(a)) return a a = add(a, b) |