2011-10-30 59 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爲「不使用全局變量」。 –