Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取类的所有修饰属性_Python - Fatal编程技术网

Python 获取类的所有修饰属性

Python 获取类的所有修饰属性,python,Python,我有一个类,看起来像: class Test(object): @property def prop1(self): return 5 @property def prop2(self): return 10 如何取回我实现的属性?例如,[prop1,prop2] 我尝试了vars()和dir()但它们似乎也返回隐藏/特殊方法 只有这样才能解析没有下划线的结果,比如说dir()?试试这个 >>>[ k for

我有一个类,看起来像:

class Test(object):

    @property
    def prop1(self):
        return 5

    @property
    def prop2(self):
        return 10
如何取回我实现的属性?例如,
[prop1,prop2]

我尝试了
vars()
dir()
但它们似乎也返回隐藏/特殊方法

只有这样才能解析没有下划线的结果,比如说
dir()

试试这个

>>>[ k for k,v in Test.__dict__.items() if isinstance(v, property) ]
['prop1', 'prop2']
由于属性是一种类型,我们可以使用
isinstance
在类的内部字典中查找它

试试这个

>>>[ k for k,v in Test.__dict__.items() if isinstance(v, property) ]
['prop1', 'prop2']
由于属性是一种类型,我们可以使用
isinstance
在类的内部字典中查找它

试试这个

>>>[ k for k,v in Test.__dict__.items() if isinstance(v, property) ]
['prop1', 'prop2']
由于属性是一种类型,我们可以使用
isinstance
在类的内部字典中查找它

试试这个

>>>[ k for k,v in Test.__dict__.items() if isinstance(v, property) ]
['prop1', 'prop2']
由于属性是一种类型,我们可以使用
isinstance
在类的内部字典中查找它

您可以使用以下命令:

def isprop(v):
    return isinstance(v, property)
propnames = [name for (name, value) in inspect.getmembers(Test, isprop)]
您可以使用以下命令:

def isprop(v):
    return isinstance(v, property)
propnames = [name for (name, value) in inspect.getmembers(Test, isprop)]
您可以使用以下命令:

def isprop(v):
    return isinstance(v, property)
propnames = [name for (name, value) in inspect.getmembers(Test, isprop)]
您可以使用以下命令:

def isprop(v):
    return isinstance(v, property)
propnames = [name for (name, value) in inspect.getmembers(Test, isprop)]