使用python时,该语言具有一个有用的功能,即“全局”,但是,我发现在尝试将全局变量指定为整数或值后可以使用该变量但不能我引用后更改变量?
如果您不明白我刚才在那写的内容,这是我的示例代码:
global number
number = 5
text="hello"
if text+str(number)=="hello5":
number=number+1
运行此特定代码后,出现错误,提示:
UnboundLocalError: local variable 'number' referenced before assignment
如果您需要帮助,请说明如何使此代码“正确”运行。
答案 0 :(得分:4)
global关键字实际上应该在局部范围内使用以引用全局变量。例如
c = 0
def add():
global c
c = c + 2
使用add()函数中的global关键字,我们可以访问变量c并进行相应的更改。
答案 1 :(得分:2)
这是您的完整代码吗?如果是这样的话;您可以在函数内部使用“全局”命令来指示对该变量的任何引用应从全局名称空间而不是本地名称空间获取,从而有效地使您可以在函数之间共享变量而无需将其作为参数传递。
您的代码在这里说明变量'number'是全局变量,但是由于尚未声明'number'并没有为其分配值,因此您会遇到此错误。
当您输入其他名称空间(即输入函数)时,只需指定变量为全局变量。然后您在该函数内部执行此操作,而不是在首次声明变量时执行此操作。
希望这会有所帮助