属性修饰器不会将属性添加到__dict__

时间:2015-04-27 12:42:26

标签: python python-2.7 attributes python-decorators

我想检索给定实例的所有属性。 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']

有没有办法做到这一点?

0 个答案:

没有答案