python中引用的全局变量



我正在尝试用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

将函数的返回值分配给valval2

val, val2 = func()
val, val2 = func1(val, val2)
func2(val, val2)

如果变量被声明为函数参数,则它是该函数的局部变量。在您的情况下,如果您声明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

但我认为,如果不需要使用全局变量,就应该避免使用它们(请检查"为什么全局变量是邪恶的?"(。考虑以正确的方式使用return,就像pp_的答案一样。

相关内容

  • 没有找到相关文章

最新更新