python-靜態(tài)方法,類(lèi)方法,屬性方法
靜態(tài)方法實(shí)際上與類(lèi)(或者實(shí)例)沒(méi)有什么關(guān)系。
使用了靜態(tài)方法,則不能像實(shí)例方法那樣再使用self。
裝飾器
@staticmethod#靜態(tài)方法
@classmethod#類(lèi)方法
@property#屬性方法
靜態(tài)方法可以使用類(lèi)調(diào)用也可以使用對(duì)象調(diào)用:
classDog(object):
def__init__(self,name):
self.name=name
@staticmethod
defeat():
print("iseating")
#類(lèi)調(diào)用
Dog.eat()
#對(duì)象調(diào)用
d=Dog('dog1')
d.eat()
靜態(tài)方法:
只是名義上歸類(lèi)管理,實(shí)際上在靜態(tài)方法里面訪問(wèn)不了類(lèi)或者實(shí)例的任何屬性。一般不需要傳參數(shù)self。
類(lèi)方法
只能訪問(wèn)類(lèi)變量,不能訪問(wèn)實(shí)例變量。需要有self參數(shù)。
類(lèi)方法的示例:
classDog(object):
food2="food2"
def__init__(self,name):
self.name=name
@classmethod
defeat(self):
print("iseating%s"%self.food2)
Dog.eat()
d=Dog('dog1')
d.eat()
或者這樣:
classDog(object):
food2="food2"
def__init__(self,name):
self.name=name
@classmethod
defeat(cls):
print("iseating%s"%cls.food2)
Dog.eat()
d=Dog('dog1')
d.eat()
屬性方法:
把一個(gè)方法變成一個(gè)靜態(tài)屬性。調(diào)用的時(shí)候不需要加()。使用屬性方法代替setter和getter方法
classDog(object):
def__init__(self,name):
self.name=name@property
defeat(self):
#print("Iameating")
return'eat'
defabc(self):
print('abc')d=Dog('xg')print(d.eat)
以上內(nèi)容為大家介紹了python培訓(xùn)之靜態(tài)方法怎么使用self,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。