如何获得类(class)中的属性列表?例如:

class Test:
    def __init__(self,**kw):
        for k,v in kw.items():
            setattr(self,k,v)
x = Test(value="hello",valueTwo="world")
print(dir(x))

我已经做到了,似乎可以打印键了,但是,它也可以打印一些额外的东西,例如:
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__','value','valueTwo']

还有另一种方法可以做到这一点,所以它只获取键/值。

最佳答案

使用x.__dict__:

>>> x.__dict__
{'value': 'hello', 'valueTwo': 'world'}

>>> [ v for k,v in x.__dict__.items() if '__' not in k and 'object at' not in k ]

关于python - 获取类中的属性列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19620631/

10-12 21:07