我想检索给定实例的所有属性。 I know I could use __dict__
,但它在我的情况下不起作用,因为我使用@property
装饰器声明了一些属性。
class A():
def __init__(self):
self.a = ""
self._b = ""
@property
def b(self):
return self._b
@b.setter
def b(self, value):
self._b = value
def f(self):
print "hello"
这些是我得到的结果:
>>> A().__dict__
{'a': '', '_b': ''}
>>> dir(A())
['__doc__', '__init__', '__module__', '_b', 'a', 'b', 'f']
但我想要的结果如下:
>>> get_all_the_attributes(A())
{'a': '', '_b': '', 'b': ''}
或者:
>>> get_all_the_attributes(A())
['a', '_b', 'b']
有没有办法做到这一点?