2017-02-25 30 views

回答

2

相同的類定義了一個定製__setattr__方法,其存儲值self.__storage__

def __setattr__(self, name, value): 
    ident = self.__ident_func__() 
    storage = self.__storage__ 
    try: 
     storage[ident][name] = value 
    except KeyError: 
     storage[ident] = {name: value} 

然而,首先需要設置初始空字典,所以object.__setattr__方法用於繞過定製的一個。

如果您要使用self.__storage__ = {}則上述自定義方法將被調用,並且這將導致屬性錯誤,因爲self.__storage__尚不存在。

相關問題