Python 靜態方法,類方法,屬性方法


方法的使用

 

 

靜態方法

- 只是名義上歸類管理,實際上在靜態方法里訪問不了類或實例中的任何屬性。

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
#刪完了

使用場景:對用戶來講不需要關心后台的工作,只需要一步實,例名.屬性 執行就可以。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM