2016-11-26 158 views
-3
def compose_greet_func(): 
    def get_message(): 
     return "Hello there!" 

    return get_message 

greet = compose_greet_func() 
greet() 

輸出:'你好!'函數返回其他函數

嗨有。我是編碼新手。 任何人都可以請解釋我在上面的程序中使用greet()。我的意思是如何迎接()正在幫助獲得輸出。非常感謝。佩斯:請不要低估這個問題,因爲我會被阻止再問。謝謝!!!

+1

*請不要低估這個問題,因爲我會被阻止再次提問* - 這意味着您一直在質疑沒有得到好評的問題......因此要求沒有降價是無用的。 *問一個好問題,你不會被降低* ... – Li357

+0

@AndrewLi我清楚地明白這一點。我盡我所能,但沒關係。 –

+0

@AndrewLi我是初學者,所以很自然我會問很簡單的問題。沒有兩個人以同樣的方式看待事物。我明白你在說什麼,我會盡力跟上。 –

回答

0

請注意,這隻會輸出「你好!」在shell中運行時:

enter image description here

功能就像任何其他intfloatstr。它們可以傳遞並放入變量中。唯一的區別是,當您添加()並放入參數時,可以調用函數。

compose_greet_func返回get_message。什麼是get_message?這是一個返回「Hello there!」的函數。現在你罵:

greet = compose_greet_func() 

greet現在有你好「它返回一個函數‘值’!」。由於greet有一個函數的值,可以通過附加()到它的結束稱之爲:

greet() 

在shell中,如果你調用一個返回值的函數,shell將打印的返回值。所以這就是爲什麼呼叫greet()讓你輸出。