Python 面向?qū)ο箪o態(tài)方法、類(lèi)方法、屬性方法知識(shí)點(diǎn)小結(jié)
本文實(shí)例講述了Python 面向?qū)ο箪o態(tài)方法、類(lèi)方法、屬性方法知識(shí)點(diǎn)。分享給大家供大家參考,具體如下:
(1)靜態(tài)方法--》-@staticmethod裝飾類(lèi)中方法
只是名義上歸類(lèi)管理, 實(shí)際上在靜態(tài)方法里訪問(wèn)不了類(lèi)或?qū)嵗械娜魏螌傩?/p>
class Dog(object): def __init__(self,name): self.name = name @staticmethod #實(shí)際上跟類(lèi)沒(méi)什么關(guān)系了 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)類(lèi)方法-----》 @classmethod裝飾類(lèi)中方法
只能訪問(wèn)類(lèi)變量,不能訪問(wèn)實(shí)例變量
@classmethod def eat(self): print('%s is eating %s' %(self.name,’dd’))
(3)屬性方法----》 @property #attribute裝飾類(lèi)中方法
把一個(gè)方法變成一個(gè)靜態(tài)屬性
@property #attribute def eat(self): print('%s is eating %s' %(self.name))# 調(diào)用Dog('TD').eat
1.需要將一個(gè)值傳遞給eat屬性方法-----修改屬性值?
存在的問(wèn)題是變成屬性了直接賦值是無(wú)法實(shí)現(xiàn)的,需要在重新相同的方法,同時(shí)將該方法加上@eat.setter進(jìn)行裝飾。
@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
總結(jié):
1. 通過(guò)@staticmethod裝飾器即可把其裝飾的方法變?yōu)橐粋€(gè)靜態(tài)方法,什么是靜態(tài)方法呢?其實(shí)不難理解,普通的方法,可以在實(shí)例化后直接調(diào)用,并且在方法里可以通過(guò)self.調(diào)用實(shí)例變量或類(lèi)變量,但靜態(tài)方法是不可以訪問(wèn)實(shí)例變量或類(lèi)變量的,一個(gè)不能訪問(wèn)實(shí)例變量和類(lèi)變量的方法,其實(shí)相當(dāng)于跟類(lèi)本身已經(jīng)沒(méi)什么關(guān)系了,它與類(lèi)唯一的關(guān)聯(lián)就是需要通過(guò)類(lèi)名來(lái)調(diào)用這個(gè)方法。
2. 類(lèi)方法通過(guò)@classmethod裝飾器實(shí)現(xiàn),類(lèi)方法和普通方法的區(qū)別是, 類(lèi)方法只能訪問(wèn)類(lèi)變量,不能訪問(wèn)實(shí)例變量。
3. 屬性方法的作用就是通過(guò)@property把一個(gè)方法變成一個(gè)靜態(tài)屬性,調(diào)用時(shí)與調(diào)用屬性的方式相同。
3.1 把一個(gè)方法變成靜態(tài)屬性的作用:
當(dāng)某個(gè)屬性的值是一系列動(dòng)作后才得到的結(jié)果。所以每次調(diào)用時(shí),其實(shí)它都要經(jīng)過(guò)一系列的動(dòng)作才返回結(jié)果的,但這些動(dòng)作過(guò)程不需要用戶(hù)關(guān)心,用戶(hù)只關(guān)心得到這個(gè)屬性的值即可,也就是說(shuō)用戶(hù)只需要調(diào)用這個(gè)屬性就可以了。
(1)修改屬性值
將由@proerty裝飾器(把一個(gè)方法變成一個(gè)靜態(tài)屬性)使用@proerty.setter裝飾器再裝飾一下,此時(shí) 你需要寫(xiě)一個(gè)新方法(同名), 對(duì)這個(gè)屬性值進(jìn)行更改。
(2)刪除屬性
#1:將由@proerty裝飾器(把一個(gè)方法變成一個(gè)靜態(tài)屬性)使用@proerty.deleter裝飾器再裝飾一下,此時(shí) 你需要寫(xiě)一個(gè)新方法(同名)。
#2:使用del刪除該實(shí)例所對(duì)應(yīng)的屬性方法(屬性) 例如:del 對(duì)象.屬性
源碼學(xué)習(xí)地址:https://gitee.com/FelixBinCloud/PythonLearn/commit/bad7a51da107bec6b2b2db697318a6935847d208
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章:
1. IntelliJ IDEA設(shè)置默認(rèn)瀏覽器的方法2. idea自定義快捷鍵的方法步驟3. IntelliJ IDEA設(shè)置背景圖片的方法步驟4. IntelliJ IDEA配置Tomcat服務(wù)器的方法5. python中復(fù)數(shù)的共軛復(fù)數(shù)知識(shí)點(diǎn)總結(jié)6. PHP腳本的10個(gè)技巧(8)7. IntelliJ IDEA導(dǎo)出項(xiàng)目的方法8. IntelliJ IDEA調(diào)整字體大小的方法9. jsp網(wǎng)頁(yè)實(shí)現(xiàn)貪吃蛇小游戲10. idea修改背景顏色樣式的方法
