我一直在閱讀關於覆蓋getattr和setattr的內容,如果我在構造函數中使用self .__ dict__ = self,我不知道是否需要重寫分配。python getattr和setattr with self .__ dict__
一旦我把課
a = OPT(foo='bar')
a.foo和[「富」]的實例使用和不使用__getattr__和__setattr__申報工作。
有人可以解釋,如果我需要兩個。如果我這樣做,爲什麼?謝謝!
class OPT(dict):
__getattr__ = dict.__getitem__
__setattr__ = dict.__setitem__
def __init__(self, *args, **kwargs):
super(OPT, self).__init__(*args, **kwargs)
self.__dict__ = self
設置'self .__ dict__ = self'可能不是一個好主意。你想用這個代碼來完成什麼? – BrenBarn
我正在以類似於字典的形式訪問該類。所以我可以做['bar']或a.bar。像[這篇文章](http://stackoverflow.com/questions/2641484/class-dict-self-init-args) – Ptrkcon
問題是,如果有人做'a ['鍵'] = 2',他們會跺腳字典的'keys()'方法,等等。 – BrenBarn