我正在尝试用python函数编写程序。一个函数中使用的变量将在各种其他函数中使用。
我在第一个函数中声明它是全局的,然后在第二个函数中使用返回的值。但是在第三个函数中,我想使用第二个函数中的更新值,但我只能从第一个函数中获取值。
def func():
global val, val2
val = 3
val2 = 4
return val, val2
def func1(val, val2):
val = val + 1
val2 = val2 + 1
return val, val2
def func2(val,val2):
val = val + 1
val2 = val2 + 1
print val, val2
func()
func1(val, val2)
func2(val, val2)
我希望得到5,6
作为答案,但我得到4,5
。
答案 0 :(得分:1)
将功能的返回值分配给val
和val2
。
val, val2 = func()
val, val2 = func1(val, val2)
func2(val, val2)
答案 1 :(得分:1)
如果将变量声明为函数参数,则它是此函数的局部变量。在您的情况下,如果您声明def func1(val,val2):
,那么val,val2
将在函数func1
中都是本地的。如果您想使用全局变量,请执行以下操作:
def func():
global val,val2
val=3
val2=4
return val,val2
def func1():
global val,val2
val=val+1
val2=val2+1
return val,val2
def func2():
global val,val2
val=val+1
val2=val2+1
print val,val2
func()
func1()
func2()
返回:
5 6
但我认为如果不需要使用全局变量,应该避免使用它们(检查Why are global variables evil?)。考虑使用return
正确的方法,如pp _的答案。