1
我被指示使用更多的pythonish方式setter和getters @property。因此,我們有這樣的事情:python dictmixin對象與屬性修飾器
from UserDict import DictMixin
class A(dict):
def __init__(self, a, b):
self.a = a
self.b = b
@property
def a(self):
return self._a
@a.setter
def a(self, value):
self._a = value
def __getitem__(self, key):
return getattr(self, key)
def __setitem__(self, key, value):
setattr(self, key, value)
def keys(self):
return [k for k in self.__dict__.keys() if not k.startswith('_')]
def do_whatever(self):
pass
a = A(1,2)
print a.keys()
輸出爲[「B」],起初我沒想到的是,但它實際上是有道理的。
問題是如何獲取所有屬性名稱而不是方法的名稱。有任何想法嗎?
我可以讓法鍵()返回的屬性的名稱硬編碼的名單,但似乎真是太酷了。 – mdob
你使用'DictMixin'的任何原因 - 現在有點老了 - 你想做什麼? (創建一個也支持屬性訪問的'dict')? –
我想要一個可以像字典一樣使用的方法。訪問一個['a'] – mdob