2013-01-21 30 views
0

你好,我有一個奇怪的疑問..將函數賦值給python中的變量?

我的代碼是

def prints(): 
     print " I WILL DIE HEHE" 

    def add(a,b): 
     next = a 
     print " Added sum is %d " % (next + b) 
     next = prints() 


    w = int(raw_input("Give a")) 
    g = int(raw_input("Give b")) 
    add(w,g) 

現在的問題是爲什麼功能打印()被執行,而我把它分配給下一個即未來=版畫()。我有點困惑。

+0

當你將'prints()'分配給'next'時,你期望發生什麼? – Marius

回答

6

因爲你在呼喚它,

prints() 

將執行其中的

ne = prints 
ne() 

被分配的名稱,然後調用新的名稱。

Noteback,我也把它作爲ne陰影next一個內置的方法

2

以下:

next = prints() 

電話prints(),並將結果分配給next。由於prints()沒有明確返回任何內容,因此它隱式返回None,因此next設置爲None

這是不完全清楚你期待什麼,或者試圖實現,但它可能有助於考慮以下幾點:

next = prints 

這樣做是函數對象賦給next。它不調用該函數,但允許它被稱爲next()