我有一个看起来像这样的课程:
class Test(object):
@property
def prop1(self):
return 5
@property
def prop2(self):
return 10
如何取回我实施的属性?例如,[prop1, prop2]
。
我尝试了vars()
和dir()
,但这些似乎也返回了隐藏/特殊方法。
执行此操作的唯一方法是解析没有下划线的结果dir()
吗?
答案 0 :(得分:3)
试试这个
>>>[ k for k,v in Test.__dict__.items() if isinstance(v, property) ]
['prop1', 'prop2']
由于属性是一种类型,我们可以使用isinstance
在类的内部字典中找到它。
答案 1 :(得分:0)
您可以使用以下内容:
def isprop(v):
return isinstance(v, property)
propnames = [name for (name, value) in inspect.getmembers(Test, isprop)]