2012-10-04 174 views
-1

我有一個腳本更新變量,但返回另一個變量。蟒蛇使用全局變量功能

如:

x = "" 
def callMe(): 

    global x 
    x = "test" 
    y = "123" 

    return y 

def main(): 
    y1 = callMe() 
    print y1 
    print x 

if __name__ == "__main__": 
    main() 

在這裏得到X emtpy的價值,即使它在呼我()函數更新。

有什麼想法?

UPDATE:

我錯了之前我的劇本,這是我目前的腳本的行爲,並沒有顯示在主z的值...

x = "" 
z = "" 
def callMe(): 

    global x 
    x = "test" 
    y = "123" 
    if y: 
     z = y 
    else: 
     z = "dont know" 
    return y 

def main(): 
    y1 = callMe() 
    print y1 
    print x 
    print z 

if __name__ == "__main__": 
    main() 
+5

適用於我。你有什麼版本的Python? – geoffspear

回答

1

如果您正在導入此模塊而不是直接運行它,main()將不會執行。 否則,沒有理由不應該這樣做。

如果您的將此代碼作爲模塊導入,__name__將返回模塊的名稱,而不是'__main__'。因此,main()永遠不會被調用,並且x的值將保持爲""