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