Python · 類---魔法方法
阿新 • • 發佈:2020-07-19
定義:
- 一個類裡面有一些特殊作用的方法,不需要你呼叫,在一些情況下會自動執行
- 類裡面 __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