这里我有一个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)
我想知道如何获取全球价值并且可以分配新值,但仅限于本地级别而非全球级别。
答案 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)