在python类中列出@property修饰的方法

2024-04-25 11:41:33 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以获得一个类中所有@property修饰方法的列表?如果是,怎么办?在

示例:

class MyClass(object):
    @property
    def foo(self):
        pass
    @property
    def bar(self):
        pass

如何从这个类获得['foo', 'bar']?在


Tags: 方法self示例列表objectfoodefmyclass
1条回答
网友
1楼 · 发布于 2024-04-25 11:41:33

任何用property修饰的对象都会在类命名空间中留下一个专用对象。查看类的__dict__,或者使用vars()函数来获得相同的值,并且property类型实例的任何值都是匹配的:

[name for name, value in vars(MyClass).items() if isinstance(value, property)]

演示:

^{pr2}$

请注意,这将包括直接使用property()的任何内容(实际上,这是装饰器所做的),并且名称的顺序是任意的(因为字典没有固定的顺序)。在

相关问题 更多 >