Python OOP類中的幾種函數(shù)或方法總結(jié)
概述
實(shí)例方法
- 使用實(shí)例調(diào)用時(shí),默認(rèn)傳遞實(shí)例本身到實(shí)例方法的第一個(gè)參數(shù)self
- 使用類調(diào)用時(shí),必須傳遞一個(gè)實(shí)例對(duì)象到實(shí)例方法的第一個(gè)參數(shù)
靜態(tài)方法
- 使用實(shí)例調(diào)用和類調(diào)用效果相同;
類方法
裝飾器版:
- 使用實(shí)例調(diào)用和類調(diào)用效果相同;
classmethod(function)版:
- 在類中,盡量不要使用classmethod(function)實(shí)現(xiàn)類方法,會(huì)將其當(dāng)做實(shí)例方法使用;
- 使用實(shí)例調(diào)用時(shí),會(huì)默認(rèn)傳遞實(shí)例本身到函數(shù)的第一個(gè)參數(shù),如果函數(shù)的參數(shù)個(gè)數(shù)為0,則報(bào)錯(cuò);
- 如果必須這樣做,就使用類調(diào)用.
普通函數(shù)
- 在類中,盡量不要定義普通函數(shù),會(huì)將其當(dāng)做實(shí)例方法使用;
- 使用實(shí)例調(diào)用時(shí),會(huì)默認(rèn)傳遞實(shí)例本身到函數(shù)的第一個(gè)參數(shù),如果函數(shù)的參數(shù)個(gè)數(shù)為0,則報(bào)錯(cuò);
- 如果必須這樣做,就使用類調(diào)用.
總而言之,除了裝飾器版的類方法和靜態(tài)方法外,其它方法與函數(shù)均可看做是實(shí)例方法.
代碼與運(yùn)行結(jié)果
class A(object): def instant_method(self,*args): print('實(shí)例方法',*args) @classmethod def class_method_01(clz,*args): """第一個(gè)參數(shù)為class,調(diào)用時(shí)自動(dòng)傳遞""" print('類方法(裝飾器版)',*args) def class_method_02(*args): print('類方法(普通函數(shù)通過(guò)內(nèi)置函數(shù)classmethond(function)轉(zhuǎn)換版)',*args) classmethod(class_method_02) @staticmethod def static_method(*args): print('靜態(tài)方法',*args) def normal_function(*args): print('普通函數(shù)',*args) a=A() # 調(diào)用實(shí)例方法 a.instant_method('通過(guò)實(shí)例調(diào)用') A.instant_method(a,'通過(guò)類調(diào)用') # 調(diào)用裝飾器版類方法 a.class_method_01('通過(guò)實(shí)例調(diào)用') A.class_method_01('通過(guò)類調(diào)用') # 調(diào)用classmethod(function)版類方法 # 通過(guò)實(shí)例調(diào)用時(shí),會(huì)默認(rèn)傳遞實(shí)例本身到方法的第一個(gè)參數(shù) a.class_method_02('通過(guò)實(shí)例調(diào)用') A.class_method_02('通過(guò)類調(diào)用') # 調(diào)用靜態(tài)方法 a.static_method('通過(guò)實(shí)例調(diào)用') A.static_method('通過(guò)類調(diào)用') # 調(diào)用普通函數(shù) # 通過(guò)實(shí)例調(diào)用時(shí),會(huì)默認(rèn)傳遞實(shí)例本身到方法的第一個(gè)參數(shù) a.normal_function('通過(guò)實(shí)例調(diào)用') A.normal_function('通過(guò)類調(diào)用')
輸出
實(shí)例方法 通過(guò)實(shí)例調(diào)用
實(shí)例方法 通過(guò)類調(diào)用
類方法(裝飾器版) 通過(guò)實(shí)例調(diào)用
類方法(裝飾器版) 通過(guò)類調(diào)用
類方法(普通函數(shù)通過(guò)內(nèi)置函數(shù)classmethond(function)轉(zhuǎn)換版) <main.A object at 0x7f9b9b0486a0> 通過(guò)實(shí)例調(diào)用
類方法(普通函數(shù)通過(guò)內(nèi)置函數(shù)classmethond(function)轉(zhuǎn)換版) 通過(guò)類調(diào)用
靜態(tài)方法 通過(guò)實(shí)例調(diào)用
靜態(tài)方法 通過(guò)類調(diào)用
普通函數(shù) <main.A object at 0x7f9b9b0486a0> 通過(guò)實(shí)例調(diào)用
普通函數(shù) 通過(guò)類調(diào)用
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- Python神奇的內(nèi)置函數(shù)locals的實(shí)例講解
- Python玩轉(zhuǎn)Excel的讀寫改實(shí)例
- Python操作配置文件ini的三種方法講解
- Python使用pymongo庫(kù)操作MongoDB數(shù)據(jù)庫(kù)的方法實(shí)例
- Python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的代碼實(shí)例
- Python中正則表達(dá)式的用法總結(jié)
- Scrapy框架爬取Boss直聘網(wǎng)Python職位信息的源碼
- Python文件讀寫常見(jiàn)用法總結(jié)
- Python3.6.x中內(nèi)置函數(shù)總結(jié)及講解
- Python判斷對(duì)象是否相等及eq函數(shù)的講解
相關(guān)文章
Flask框架利用Echarts實(shí)現(xiàn)繪制圖形
echarts是百度推出的一款開源的基于JavaScript的可視化圖表庫(kù),該開發(fā)庫(kù)目前發(fā)展非常不錯(cuò),且支持各類圖形的繪制可定制程度高。如下演示案例中,將分別展示運(yùn)用該繪圖庫(kù)如何前后端交互繪制(餅狀圖,柱狀圖,折線圖)這三種最基本的圖形,需要的可以參考一下2022-10-10Pycharm 操作Django Model的簡(jiǎn)單運(yùn)用方法
今天小編就為大家分享一篇Pycharm 操作Django Model的簡(jiǎn)單運(yùn)用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05python 創(chuàng)建彈出式菜單的實(shí)現(xiàn)代碼
這篇文章主要介紹了python 創(chuàng)建彈出式菜單的實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-07-07python mysql自增字段AUTO_INCREMENT值的修改方式
這篇文章主要介紹了python mysql自增字段AUTO_INCREMENT值的修改方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05TensorFlow安裝并在Pycharm搭建環(huán)境的詳細(xì)圖文教程
今天動(dòng)手開始搭建TensorFlow開發(fā)環(huán)境,所以下面這篇文章主要給大家介紹了關(guān)于TensorFlow安裝并在Pycharm搭建環(huán)境的詳細(xì)圖文教程,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11Python打印數(shù)據(jù)類型的全過(guò)程
這篇文章主要介紹了Python打印數(shù)據(jù)類型的全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05python3實(shí)現(xiàn)網(wǎng)頁(yè)版raspberry pi(樹莓派)小車控制
這篇文章主要為大家詳細(xì)介紹了python3實(shí)現(xiàn)網(wǎng)頁(yè)版raspberry pi(樹莓派)小車控制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02python使用if語(yǔ)句實(shí)現(xiàn)一個(gè)猜拳游戲詳解
這篇文章主要介紹了python使用if語(yǔ)句實(shí)現(xiàn)一個(gè)猜拳游戲詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08解決Pyinstaller打包為可執(zhí)行文件編碼錯(cuò)誤的問(wèn)題
這篇文章主要介紹了解決Pyinstaller打包為可執(zhí)行文件編碼錯(cuò)誤的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03