python中自帶的三個裝飾器


說到裝飾器,就不得不說python自帶的三個裝飾器:

1、@property 將某函數,做為屬性使用

@property 修飾,就是將方法,變成一個屬性來使用。

class A():


    @property
    def pfunc(self):
        return self.value

    @pfunc.setter
    def pfunc(self,value):
        self.value = value

    @property
    def pfunc1(self):
        print('this is property')

if __name__=="__main__":

    A.pfunc = 9
    print A.pfunc
    A.pfunc1

2、@classmethod 修飾類的方式

帶修飾類方法:cls做為方法的第一個參數,隱式的將類做為對象,傳遞給方法,調用時無須實例化。

普通函數方法:self做為第一個參數,隱式的將類實例傳遞給方法,調用方法時,類必須實例化。

class A():
    def func(self,x,y):
        return x * y

    @classmethod
    def cfunc(cls,x,y):
        return x * y

if __name__=="__main__":
    print A().func(5,5)
    print A.cfunc(4,5)
 

3、@staticmethod 修飾類的方式

1)是把函數嵌入到類中的一種方式,函數就屬於類,同時表明函數不需要訪問這個類

2)使用修飾服,修飾方法,不需要實例化

class A():
    def func(self,x,y):
        return x * y


    @staticmethod
    def sfunc(x,y):
        return x * y


if __name__=="__main__":

    print A.sfunc(6,5)


免責聲明!

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



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