Python 我想用函数重置x,但它不起作用
为什么此功能不重置Python 我想用函数重置x,但它不起作用,python,function,Python,Function,为什么此功能不重置x 我的代码如下所示: def reset(): x=0 x = 22 reset() print(x) 预期结果x=0,实际结果x=22您需要将x作为全局: def reset(): 全球x x=0 您需要进一步了解Python中的作用域。对名称的赋值始终位于最内部的作用域中。global语句可用于指示特定变量位于全局作用域中,并且应该位于全局作用域中;nonlocal语句表示特定变量位于封闭范围内,并且应该在该范围内反弹 def scope_test():
x
我的代码如下所示:
def reset():
x=0
x = 22
reset()
print(x)
预期结果
x=0
,实际结果x=22
您需要将x作为全局
:
def reset():
全球x
x=0
您需要进一步了解Python中的作用域。对名称的赋值始终位于最内部的作用域中。global语句可用于指示特定变量位于全局作用域中,并且应该位于全局作用域中;nonlocal语句表示特定变量位于封闭范围内,并且应该在该范围内反弹
def scope_test():
def reset_local():
x = "local"
def reset_nonlocal():
nonlocal x
x = "nonlocal"
def do_global():
global x
x = "global"
x = "origin"
reset_local()
print("After local assignment:", x)
reset_nonlocal()
print("After nonlocal assignment:", x)
reset_global()
print("After global assignment:", x)
scope_test()
print("In global scope:", x)
输出:
After local assignment: origin
After nonlocal assignment: nonlocal
After global assignment: nonlocal
In global scope: global
请注意,本地赋值(默认)没有改变scope_测试对x的绑定。非局部赋值更改了scope_test的x绑定,全局赋值更改了模块级绑定
您还可以看到,在全局赋值之前,x没有以前的绑定
有关更多信息,请参阅Python教程:。
希望对您有所帮助可能重复的