我有点像python的初学者,我发誓我得到了一个非常类似于我现在正在做的工作。但是,由于某种原因,我无法使其发挥作用。我能够找出我的问题,并创建了一个假的程序来玩它。这是程序:
global heading
global heading2
global a
heading=2
a=2
heading2=4
def function ():
if a==2:
heading=heading2
print 'yes'
print heading
function()
print heading
出现的是:
yes
4
2
为什么标题变量标题不保持值4?我试着将返回标题全部放进去。没工作。我尝试将变量放在函数的括号中。也没工作......你知道我做错了吗?
答案 0 :(得分:4)
global
语句在函数之外是没有意义的。如果要修改全局变量,而不是引入本地变量,则需要将global
放在函数内
def foo():
global x
x = x2
另外,不要使用全局变量。
答案 1 :(得分:3)
该行:
heading=heading2
创建一个名为heading
的新本地变量,它与不同与您传递给函数的另一个名为heading
的变量。 / p>
您可以通过添加:
将功能分配给外部变量global heading
在分配到标题之前:
def function():
global heading
if a==2:
heading=heading2
print 'yes'
print heading
答案 2 :(得分:0)
在Inside函数中,您正在创建一个名为heading
的局部变量。这与函数外部声明的heading
不同。