Python 面向對象靜態(tài)方法、類方法、屬性方法知識點小結
本文實例講述了Python 面向對象靜態(tài)方法、類方法、屬性方法知識點。分享給大家供大家參考,具體如下:
(1)靜態(tài)方法--》-@staticmethod
裝飾類中方法
只是名義上歸類管理, 實際上在靜態(tài)方法里訪問不了類或實例中的任何屬性
class Dog(object): def __init__(self,name): self.name = name @staticmethod #實際上跟類沒什么關系了 def eat(self): print("%s is eating %s" %(self.name,'dd')) def talk(self): print("%s is talking"% self.name) d = Dog("Td") d.eat(d)
(2)類方法-----》 @classmethod
裝飾類中方法
只能訪問類變量,不能訪問實例變量
@classmethod def eat(self): print("%s is eating %s" %(self.name,'dd'))
(3)屬性方法----》 @property #attribute
裝飾類中方法
把一個方法變成一個靜態(tài)屬性
@property #attribute def eat(self): print("%s is eating %s" %(self.name)) # 調(diào)用 Dog("TD").eat
1.需要將一個值傳遞給eat屬性方法-----修改屬性值?
存在的問題是變成屬性了直接賦值是無法實現(xiàn)的,需要在重新相同的方法,同時將該方法加上@eat.setter
進行裝飾。
@property #attribute def eat(self): print("%s is eating %s" %(self.name,self.__food)) @eat.setter def eat(self,food): print("set to food:",food) Self.__food=food
2.刪除屬性---同名方法使用 @eat.deleter
修飾
@property #attribute def eat(self): print("%s is eating %s" %(self.name,self.__food)) @eat.deleter def eat(self): del self.__food
總結:
1. 通過@staticmethod
裝飾器即可把其裝飾的方法變?yōu)橐粋€靜態(tài)方法,什么是靜態(tài)方法呢?其實不難理解,普通的方法,可以在實例化后直接調(diào)用,并且在方法里可以通過self.調(diào)用實例變量或類變量,但靜態(tài)方法是不可以訪問實例變量或類變量的,一個不能訪問實例變量和類變量的方法,其實相當于跟類本身已經(jīng)沒什么關系了,它與類唯一的關聯(lián)就是需要通過類名來調(diào)用這個方法。
2. 類方法通過@classmethod
裝飾器實現(xiàn),類方法和普通方法的區(qū)別是, 類方法只能訪問類變量,不能訪問實例變量。
3. 屬性方法的作用就是通過@property
把一個方法變成一個靜態(tài)屬性,調(diào)用時與調(diào)用屬性的方式相同。
3.1 把一個方法變成靜態(tài)屬性的作用:
當某個屬性的值是一系列動作后才得到的結果。所以每次調(diào)用時,其實它都要經(jīng)過一系列的動作才返回結果的,但這些動作過程不需要用戶關心,用戶只關心得到這個屬性的值即可,也就是說用戶只需要調(diào)用這個屬性就可以了。
(1)修改屬性值
將由@proerty
裝飾器(把一個方法變成一個靜態(tài)屬性)使用@proerty.setter
裝飾器再裝飾一下,此時 你需要寫一個新方法(同名), 對這個屬性值進行更改。
(2)刪除屬性
#1:將由@proerty
裝飾器(把一個方法變成一個靜態(tài)屬性)使用@proerty.deleter
裝飾器再裝飾一下,此時 你需要寫一個新方法(同名)。
#2:使用del刪除該實例所對應的屬性方法(屬性) 例如:del 對象.屬性
源碼學習地址:https://gitee.com/FelixBinCloud/PythonLearn/commit/bad7a51da107bec6b2b2db697318a6935847d208
更多關于Python相關內(nèi)容感興趣的讀者可查看本站專題:《Python面向對象程序設計入門與進階教程》、《Python數(shù)據(jù)結構與算法教程》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結》及《Python入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設計有所幫助。
相關文章
關于Python中compile() 函數(shù)簡單實用示例詳解
這篇文章主要介紹了關于compile() 函數(shù)簡單實用示例,compile() 函數(shù)將一個字符串編譯為字節(jié)代碼,compile將代碼編譯為代碼對象,應用在代碼中可以提高效率,本文通過示例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-05-05Python如何import文件夾下的文件(實現(xiàn)方法)
下面小編就為大家?guī)硪黄狿ython如何import文件夾下的文件(實現(xiàn)方法)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01Django中針對基于類的視圖添加csrf_exempt實例代碼
這篇文章主要介紹了Django中針對基于類的視圖添加csrf_exempt實例代碼,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下2018-02-02