2011-10-30 58 views
2

我在Python中是一个初学者,我发誓我有一个非常类似的程序,我现在正在做的工作。但是,由于某种原因,我无法完成工作。我能够查明我的问题,并创建了一个假程序来玩弄它。以下是该程序:蟒蛇并在if语句中分配变量值

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?我试着把所有的回归标题都放了。没有工作。我试着把变量放在函数的括号中。没有工作......你知道我做错了什么吗?

回答

3

行:

heading=heading2 

创建一个新的本地变量称为heading,这是不同到名为heading其他varaible,你传递给函数。

您可以进行功能分配给外部变量加入:

global heading 

分配给标题前:

def function(): 
    global heading 
    if a==2: 
     heading=heading2 
     print 'yes' 
     print heading 
+0

我不能相信我错过了!谢谢!!! – user1020797

0

内部功能,将创建名为heading一个局部变量。这与在函数外部声明的heading不一样。

4

global声明在函数外面没有意义。如果要修改全局变量,而不是引入当地的一个,你需要把global功能

def foo(): 
    global x 
    x = x2 

也在里面,不要使用全局变量。

+0

+1为“不使用全局变量”。 –