1. 程式人生 > 實用技巧 >Python · 類---魔法方法

Python · 類---魔法方法

定義:

  • 一個類裡面有一些特殊作用的方法,不需要你呼叫,在一些情況下會自動執行
  • 類裡面 __funname__ 都是魔法方法,有一些特殊作用

練習:

class DictToObject(dict):
    '''字典轉物件'''
    def __getattr__(self, item):
        #__getattr__的作用是通過x.xx的時候它會自動呼叫__getattr__這個方法,把你要獲取的屬性的key傳過來
        #比如說 user.name ,它就是呼叫了__getattr__,把name傳給__getattr__函式,然後返回這個name的值
        value = self[item]
        
if isinstance(value,dict): value = DictToObject(value)#如果是字典型別,直接返回DictToObject這個類的物件 #是字典了再次把呼叫DictToObject(),把value給繼續執行DictToObject() elif isinstance(value,list) or isinstance(value,tuple): #如果是list,迴圈list判斷裡面的元素,如果裡面的元素是字典,那麼就把字典轉成DictToObject的物件 value = list(value)
for index,obj in enumerate(value): if isinstance(obj,dict): value[index] = DictToObject(obj) return value