方法的使用 |
靜態方法
- 只是名義上歸類管理,實際上在靜態方法里訪問不了類或實例中的任何屬性。
class Dog(object): def __init__(self,name): self.name = name # 靜態方法實際上根類沒什么關系,單純變成一個函數。 @staticmethod def eat(self,food): print("%s is eating %s" %(self.name,food))
類方法
- 只能訪問類變量,不能訪問實例變量
class Dog(object): n = 333 def __init__(self,name): self.name = name @classmethod #只能訪問類變量 def eat(self,food): print("%s is eating %s" %(self.n,food))
使用場景:只能用寫死的類變量。
屬性方法
- 把一個方法變成一個靜態屬性。
class Dog(object): n = 333 def __init__(self,name): self.name = name @property #把一個方便變為靜態屬性 def eat(self): print("%s is eating %s" %(self.name,"dd")) d = Dog("ChenRonghua") d.eat
屬性方法的用法
# 創建屬性方法: @property # 修改屬性方法: @eat.setter # 刪除屬性方法: @eat.deleter class Dog(object): def __init__(self,name): self.name = name self.__food = None @property #把一個方便變為靜態屬性 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 @eat.deleter #屬性方法刪除 def eat(self): del self.__food print("刪完了") d = Dog("ChenRonghua") #實例化 d.eat #不添加元素,輸出 d.eat = "baozi" #賦值元素,需要兩個同名函數 d.eat #賦值后輸出 #輸出結果 #ChenRonghua is eating None #set to food: baozi #ChenRonghua is eating baozi #刪完了
使用場景:對用戶來講不需要關心后台的工作,只需要一步實,例名.屬性 執行就可以。