python類函數(shù)的有效調(diào)用方式
一、實(shí)驗(yàn)
1、準(zhǔn)備類的幾種方法
- (1)被@property裝飾的屬性方法 test_001
- (2)被@staticmethod裝飾的靜態(tài)方法 test_002
- (3)被@classmethod裝飾的類方法 test_003
- (4)沒(méi)有任何裝飾的普通方法 test_004
- (5)保護(hù)方法 _test_005
- (6)私有方法 __test_006
2、實(shí)驗(yàn)結(jié)果見(jiàn)圖片
class TestClass(object): @property def test_001(self): # 第一個(gè)傳參必須是self return 1 @staticmethod def test_002(): # 沒(méi)有固定傳參 return 2 @classmethod def test_003(cls): # 第一個(gè)傳參必須是cls return 3 def test_004(self): # 第一個(gè)傳參必須是self return 4 def _test_005(self): # 第一個(gè)傳參必須是self return 5 def __test_006(self): # 第一個(gè)傳參必須是self return 6 def _test_007(): return 7 print(_test_007()) # 值 if __name__ == "__main__": # 類沒(méi)有實(shí)例化,函數(shù)沒(méi)有實(shí)例化,直接調(diào)用函數(shù)對(duì)象 print("TestClass.test_001:", TestClass.test_001) # 函數(shù)對(duì)象 print("TestClass.test_002:", TestClass.test_002) # 函數(shù)對(duì)象 print("TestClass.test_003:", TestClass.test_003) # 函數(shù)對(duì)象 print("TestClass.test_004:", TestClass.test_004) # 函數(shù)對(duì)象 print("TestClass._test_005:", TestClass._test_005) # 函數(shù)對(duì)象 # print("TestClass.__test_006:", TestClass.__test_006) # 直接報(bào)錯(cuò),說(shuō)明該調(diào)用方法不行 # 類實(shí)例化,函數(shù)沒(méi)有實(shí)例化,直接調(diào)用函數(shù)對(duì)象 print("TestClass().test_001:", TestClass().test_001) # 值 print("TestClass().test_002:", TestClass().test_002) # 函數(shù)對(duì)象 print("TestClass().test_003:", TestClass().test_003) # 函數(shù)對(duì)象 print("TestClass().test_004:", TestClass().test_004) # 函數(shù)對(duì)象 print("TestClass()._test_005:", TestClass()._test_005) # 函數(shù)對(duì)象 # print("TestClass().__test_006:", TestClass().__test_006) # 直接報(bào)錯(cuò),說(shuō)明該調(diào)用方法不行 # 類實(shí)例化,函數(shù)實(shí)例化,再調(diào)用函數(shù)對(duì)象 # print("TestClass().test_001():", TestClass().test_001()) # 直接報(bào)錯(cuò),說(shuō)明該調(diào)用方法不行 print("TestClass().test_002():", TestClass().test_002()) # 值 print("TestClass().test_003():", TestClass().test_003()) # 值 print("TestClass().test_004():", TestClass().test_004()) # 值 print("TestClass()._test_005():", TestClass()._test_005()) # 值 # print("TestClass().__test_006():", TestClass().__test_006()) # 直接報(bào)錯(cuò),說(shuō)明該調(diào)用方法不行 # 類沒(méi)有實(shí)例化,函數(shù)實(shí)例化,再調(diào)用函數(shù)對(duì)象 # print("TestClass.test_001:", TestClass.test_001()) # 直接報(bào)錯(cuò),說(shuō)明該調(diào)用方法不行 print("TestClass.test_002():", TestClass.test_002()) # 值 print("TestClass.test_003():", TestClass.test_003()) # 值 # print("TestClass.test_004():", TestClass.test_004()) # 直接報(bào)錯(cuò),說(shuō)明該調(diào)用方法不行 # print("TestClass._test_005():", TestClass._test_005()) # 直接報(bào)錯(cuò),說(shuō)明該調(diào)用方法不行 # print("TestClass.__test_006():", TestClass.__test_006()) # 直接報(bào)錯(cuò),說(shuō)明該調(diào)用方法不行 # 私有方法調(diào)用方式 print("TestClass()._TestClass__test_006():", TestClass()._TestClass__test_006())
二、類的有效調(diào)用
- 1、去掉報(bào)錯(cuò)的方式
- 2、去掉返回對(duì)象的方式
- 3、保留具有返回值的方式
方法類型 | 調(diào)用方式 |
test_001(屬性方法) | TestClass().test_001 |
test_002(靜態(tài)方法) | TestClass().test_002() TestClass.test_002() |
test_003(類方法) | TestClass().test_003() TestClass.test_003() |
test_004(普通方法) | TestClass().test_004() |
_test_005(保護(hù)方法) | TestClass()._test_005() (備注:當(dāng)不在類內(nèi)部時(shí),即獨(dú)立出來(lái)成為模塊的方法,那么被其他模塊導(dǎo)入時(shí),若采用 from moudle import * 的方法,該方法將不被引入,但類內(nèi)部還是可以的) |
__test_006(私有方法) | 禁止調(diào)用 (備注:可以通過(guò)其他方式調(diào)用 TestClass()._TestClass__test_006() ) |
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python基于pandas實(shí)現(xiàn)json格式轉(zhuǎn)換成dataframe的方法
這篇文章主要介紹了Python基于pandas實(shí)現(xiàn)json格式轉(zhuǎn)換成dataframe的方法,結(jié)合實(shí)例形式分析了Python使用pandas模塊操作json數(shù)據(jù)轉(zhuǎn)換成dataframe的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-06-06利用Python實(shí)現(xiàn)K-Means聚類的方法實(shí)例(案例:用戶分類)
k-means是發(fā)現(xiàn)給定數(shù)據(jù)集的k個(gè)簇的算法,也就是將數(shù)據(jù)集聚合為k類的算法,下面這篇文章主要給大家介紹了關(guān)于利用Python實(shí)現(xiàn)K-Means聚類的相關(guān)資料,需要的朋友可以參考下2022-05-05淺談PyTorch中in-place operation的含義
這篇文章主要介紹了淺談PyTorch中in-place operation的含義,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06Python minidom模塊用法示例【DOM寫(xiě)入和解析XML】
這篇文章主要介紹了Python minidom模塊用法,結(jié)合實(shí)例形式分析了Python DOM創(chuàng)建、寫(xiě)入和解析XML文件相關(guān)操作技巧,需要的朋友可以參考下2019-03-03python使用tensorflow保存、加載和使用模型的方法
本篇文章主要介紹了python使用tensorflow保存、加載和使用模型的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01