1. 程式人生 > >python描述符詳解

python描述符詳解

1描述符:

描述符是指將某種特殊型別的類的例項支配給另外一個類的屬性。

對於特殊型別必須實現以下三個方法中至少一個方法:
   def __get__(self,instance,owner):

-用於訪問屬性,它返回屬性的值

 

def __set__(self,instance,value):

-將在屬性的分配操作中呼叫,不返回任何內容

 

def __delete__(self,instance):

-控制刪除操作,不返回任何內容

2溫度類的舉例:

要求:

(1)定義一個溫度類,然後定義兩個描述符類用於描述攝氏溫度和華氏溫度兩個屬性;

(2)要求兩個屬性之間可以相互自動轉換。

 

實現程式碼如下:

class Cel:

    def __init__(self,value=26.0):

        self.value=float(value)

       

    def __get__(self,instance,owner):

        return self.value

   

    def __set__(self,instance,value):

        self.value=float(value)

               

class Fah:

    def __get__(self,instance,owner):

        return instance.cel*1.8+32

   

    def __set__(self,instance,value):

        instance.cel=(float(value)-32)/1.8

 

class Temperature:

cel=Cel()

fah=Fah()

 

執行結果如下: