Python關於函數作為返回值的理解(3分鍾就看完了)


話不多說,直接看例子,上代碼:

1 def line_conf():
2     def line(x):
3         return 2 * x + 1
4     return line     #return a function object
5 
6 my_line = line_conf()
7 print(my_line(5))

在上面這段代碼中,我定義了一個函數line_conf(),這個函數的作用是返回line(注意代碼第4行),而line是定義在line_conf()中的函數,即這個函數的作用就是返回一個函數,也就是把函數作為普通的對象進行返回。在理解上述代碼之前,我們先看另外一個例子:python中有個函數,名叫 abs,其功能是返回傳入參數的絕對值,即abs(10)返回10,abs(-10)返回10。此時如果令 a=abs, 接下來就可以不通過使用abs的名字來調用該函數,而可以直接用a(10)和a(-10)來返回10。怎么理解呢?abs其實也是一個變量名而已,可以把它理解為一個引用,一個指向返回絕對值函數的引用,這個時候如果令任何一個變量=abs,如a=abs,則此時a也作為引用指向了這個函數,即可使用a(10)的方式調用該函數。

再看上面這個例子,代碼第6行,通過調用line_conf()函數,返回一個line函數對象,my_line = line_conf() 即讓my_line=line,所以代碼第7行可以通過使用my_line(5)的方式去調用line函數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM