1
可以說我有包含在構造函數創建的屬性的混合Python類,並使用property
裝飾創建計算性能:獲取包含Python對象計算屬性的字典?
class Example:
def __init__(self):
self.foo = 1
@property
def bar(self):
return 2
def baz(self, x):
return x * x
我想生成包含這兩種屬性的字典,但沒有別的。但是,如果我這樣做vars(Example())
我只得到foo
。如果我做dir(Example())
,我同時得到foo
和bar
,但也得到baz
以及其他垃圾。
是否可以自動生成這樣的字典?我想我將不得不覆蓋__dict__
?也許通過調用dir
並以某種方式篩選出不中斷的部分?
我想避免不得不手動枚舉所有的屬性。
'foo'是屬性,而不是屬性。 –
不確定是否足夠,但所有「垃圾」以__開頭,爲什麼不過濾?如果不是i.startswith(「__」)]' –
'我想我將不得不重寫'__dict__'「 - 不這樣做。它打破了太多的期望和太多的代碼。他們用'namedtuple'試了一下,這是一個糟糕的主意,他們不得不改變它。 – user2357112