全局变量 - 如何在引用后分配变量?
global variables - how do you assign a variable after reference?
使用 python,该语言有一个有用的特性,即 "global",但是,我在试验代码时发现,在将全局变量分配为整数或值后,我可以使用变量但在引用变量后无法更改变量?
如果你不明白我刚才写的是什么,这里是我的示例代码:
global number
number = 5
text="hello"
if text+str(number)=="hello5":
number=number+1
在我 运行 这个特定的代码之后我得到一个错误,它指出:
UnboundLocalError: local variable 'number' referenced before assignment
如果你能帮忙,请说明我如何制作这段代码运行 "properly"。
global 关键字实际上应该在局部范围内使用以引用全局变量。例如
c = 0
def add():
global c
c = c + 2
在函数 add() 中使用 global 关键字,我们能够访问变量 c 并相应地更改它。
这是你的完整代码吗?如果是这样;您将在函数内部使用 'global' 命令来指示对该变量的任何引用都应从全局命名空间而不是本地命名空间中获取,从而有效地允许您在函数之间共享变量而无需将它们传递为参数.
此处的代码声明变量 'number' 是全局变量,但是由于 'number' 尚未声明并分配值,因此您会收到此错误。
只需要在进入不同的命名空间(即进入函数)时指定变量为全局即可。您在该函数内部执行此操作,而不是在第一次声明变量时执行此操作。
希望对您有所帮助
使用 python,该语言有一个有用的特性,即 "global",但是,我在试验代码时发现,在将全局变量分配为整数或值后,我可以使用变量但在引用变量后无法更改变量?
如果你不明白我刚才写的是什么,这里是我的示例代码:
global number
number = 5
text="hello"
if text+str(number)=="hello5":
number=number+1
在我 运行 这个特定的代码之后我得到一个错误,它指出:
UnboundLocalError: local variable 'number' referenced before assignment
如果你能帮忙,请说明我如何制作这段代码运行 "properly"。
global 关键字实际上应该在局部范围内使用以引用全局变量。例如
c = 0
def add():
global c
c = c + 2
在函数 add() 中使用 global 关键字,我们能够访问变量 c 并相应地更改它。
这是你的完整代码吗?如果是这样;您将在函数内部使用 'global' 命令来指示对该变量的任何引用都应从全局命名空间而不是本地命名空间中获取,从而有效地允许您在函数之间共享变量而无需将它们传递为参数.
此处的代码声明变量 'number' 是全局变量,但是由于 'number' 尚未声明并分配值,因此您会收到此错误。
只需要在进入不同的命名空间(即进入函数)时指定变量为全局即可。您在该函数内部执行此操作,而不是在第一次声明变量时执行此操作。
希望对您有所帮助