python中函數與函數之間的調用,總是暈菜,整理如下,有不對或者補充的請提出來~


1.python函數基礎

函數名: fun

函數體:1~3行

返回值:2

調用函數:fun() ,只有見到這個括號(),程序會根據函數名從內存中找到函數體,然后執行它。

 

2.函數的執行順序

下面的fun將上面的fun覆蓋掉了,因此,在Python中代碼的放置位置是有要求的,不能隨意擺放,函數體要放在被調用的語句之前。

 

3.函數的調用

第一種情況:

x(f),注意:x(f)中的f沒有加括號(),即f為參數。將f作為參數傳入x(),x()中的y()函數返回的是y即函數名所以沒有執行y函數。所以最終打印出為無結果。

 

第二種情況:

x(f()),注意:x(f())中f后面是有括號的,即f作為函數傳給x。將f()函數傳給x()函數,先執行f()函數打印出2,再執行x()函數,因為x()中的y()函數返回的是y即函數名所以沒有執行y函數。所以最終打印結果為2。

 

第三種情況:

x(f),注意:x函數中的y函數返回的值是y函數,即return y()。x(f)中f作為參數傳給x函數,所以f()函數就不執行了,執行x函數,因為return y(),所以執行y函數打印出1。最終打印結果為1。

 

第四種情況:

x(f()),注意:x(f())中f后面是有括號的,即f作為函數傳給x;x函數中的y函數返回的值是y函數,即return y()。將f()函數傳給x()函數,先執行f()函數打印出2,再執行x函數,因為return y(),所以執行y函數打印出1。最終執行打印結果為2 1。

 

第五種情況:

x(f),注意:x(f)中f后面沒有括號,即f作為參數傳入x()函數。將f作為參數帶入x函數執行,因為return y()所以執行y函數打印出1;再執行語句,此時相當於func()=f(),即開始執行f()函數打印出2。所以最終打印結果為1 2。

以上是按照我自己理解來總結的,不對或者有補充的地方歡迎指出來~~

或者參考大神們的總結,鏈接: http://www.cnblogs.com/feixuelove1009/p/5541632.html

聲明:如需轉載,請注明來源!

 


免責聲明!

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



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