1. 程式人生 > 實用技巧 >七.描述符 __get__, __set__, __delete__

七.描述符 __get__, __set__, __delete__

七.描述符 __get__, __set__, __delete__

1.什麼是描述符

  • 描述符的本質就是一個新式類, 在這個新式類中至少實現了 __get()__, __set()__, __delete()__ 中的一個就稱為描述符, 也被稱為描述符協議

    • __get__(self,inatance,owener) : 當訪問一個屬性的時候觸發
    • __set__(self,instance,value) : 為一個屬性賦值時觸發
    • __delete__(self,instance) : 使用 del 刪除一個屬性的時候觸發
    self 描述符的物件
    instance 使用描述符的物件
    owner 設定了描述符的類(也就是instance的類)
    value instance的值
  • 定義一個描述符

class MyDecriptor:
    def __get__(self, instance, owner):
        print('觸發get')

    def __set__(self, instance, value):
        print('觸發set')

    def __delete__(self, instance):
        print('觸發delete')