深入理解Python函數(shù)的九個黃金法則
編程離不開函數(shù)。Python的函數(shù)除了具備傳統(tǒng)意義上的函數(shù)特征外,又被賦予了其他一些特性,讓它更靈活、更強大。這篇文章結(jié)合之前我推薦的一本Python寶書,又添加一些我的實踐和理解,總結(jié)了深入理解Python函數(shù)的9個黃金法則。
1. 函數(shù)是對象
這意味著,yell 能賦值給 bark,如下所示:
而bark輕松被賦予yell的功能
2. 刪除函數(shù)
函數(shù)既然是對象,我們可以刪除函數(shù),如下:
但是bark還是能夠正常調(diào)用:
3. 這說明:函數(shù)名字和函數(shù)本身完全是分開的
4. 函數(shù)既然是對象,就可以結(jié)合數(shù)據(jù)結(jié)構(gòu)使用
5. 函數(shù)既然是對象,就可以作為函數(shù)參數(shù)
6. 函數(shù)既然是對象,就可以在嵌套在函數(shù)體內(nèi)
如下所示,函數(shù)內(nèi)再定義2個函數(shù)對象
7. 內(nèi)層函數(shù)對象能夠記憶住父函數(shù)的變量
官方術(shù)語:閉包,記住這個例子:
8. 所有的函數(shù)都是對象,但是所有的對象并不一定都是函數(shù)
9. 對象成為函數(shù)需要實現(xiàn)__call__協(xié)議
實現(xiàn)__call__協(xié)議后,plus_3對象便成為函數(shù),可以plus_3(4)了!強大。
以上就是9個靈活使用函數(shù)的黃金法則,希望對你有用。