如何在python中访问全局变量并在本地级别更改其值

时间:2014-07-11 00:22:59

标签: python python-3.x global-variables

这里我有一个python代码。在这段代码中,我定义了两个函数,并在我创建的顶部一个变量。但是当我尝试使用下面的赋值语句调用本地函数时,会生成错误,即局部变量未初始化。如果我没有为其分配值而不是成功访问值。

 a=5
 def local():
     print("inside local Function before changing %d"%a)
     a=3
     print("Insie local Function after changing %d"%a)
 local()
 print("outside local Function after changing %d"%a)
 def global_ars():
     global a
     a=6
     print("Inside Global Function %d"%a)
global_ars()
print("outside Global Function %d"%a)

我想知道如何获取全球价值并且可以分配新值,但仅限于本地级别而非全球级别。

2 个答案:

答案 0 :(得分:0)

假设您想要从全局值开始,但是分配只影响本地副本,那么解决方案就是创建另一个变量:

def f():
    local_a = a
    # Now use local_a instead of a.

如果您希望函数内的赋值影响全局变量,请使用global,就像您已经在做的那样。

答案 1 :(得分:0)

只需从全局范围获取值,不要修改全局变量:

a = 0
def global_fn():
    global a
    local_a = a
    print("local original %d"%local_a)
    local_a = 10
    print("local modified %d"%local_a)
 global_fn()
 print("global unmodified %d"%a)