函数中的Python3变量
这里我想要的是在函数中的Python3变量,python,function,variables,python-3.x,global-variables,Python,Function,Variables,Python 3.x,Global Variables,这里我想要的是在x()中从a()更改b 我试过使用 def a(): b = 1 def x(): b -= 1 if something is something: x() a() 但正如我所预料的,这告诉我全局b是没有定义的 b需要在运行x()后进行更改,如果第二次调用x(),b需要是x()设置为-0的值,而不是a()-1中最初设置的值。要更改包含范围中定义的变量的值,请使用非局部。该关键字类似于intent toglobal(这表明
x()
中从a()
更改b
我试过使用
def a():
b = 1
def x():
b -= 1
if something is something:
x()
a()
但正如我所预料的,这告诉我全局b是没有定义的
b
需要在运行x()
后进行更改,如果第二次调用x()
,b
需要是x()
设置为-0的值,而不是a()
-1中最初设置的值。要更改包含范围中定义的变量的值,请使用非局部。该关键字类似于intent toglobal
(这表明变量应被视为全局范围内的绑定)
因此,请尝试以下方法:
def a():
b = 1
def x():
global b
b -= 1
if something is something:
x()
a()
要更改在包含范围中定义的变量的值,请使用非局部
。该关键字类似于intent toglobal
(这表明变量应被视为全局范围内的绑定)
因此,请尝试以下方法:
def a():
b = 1
def x():
global b
b -= 1
if something is something:
x()
a()
这应该起作用:
def a():
b = 1
def x():
# indicate we want to be modifying b from the containing scope
nonlocal b
b -= 1
if something is something:
x()
a()
这应该起作用:
def a():
b = 1
def x():
# indicate we want to be modifying b from the containing scope
nonlocal b
b -= 1
if something is something:
x()
a()
你能详细说明什么是非本地的吗。对于Python(一般来说,编程很好)来说,这个解释比您还新,您能否详细说明一下非本地究竟是什么。对Python来说(一般来说编程很好)比你还新,这个解释很完美谢谢,但我希望有一种不使用“return”的方法谢谢,但我希望有一种不使用“return”的方法