Python 如何列出所有类属性
我有一个带有属性的类。例如Python 如何列出所有类属性,python,serialization,properties,Python,Serialization,Properties,我有一个带有属性的类。例如id和name: class SomeClass(object): def __init__(self): self.__id = None self.__name = None def get_id(self): return self.__id def set_id(self, value): self.__id = value def get_name(self)
id
和name
:
class SomeClass(object):
def __init__(self):
self.__id = None
self.__name = None
def get_id(self):
return self.__id
def set_id(self, value):
self.__id = value
def get_name(self):
return self.__name
def set_name(self, value):
self.__name = value
id = property(get_id, set_id)
name = property(get_name, set_name)
列出属性的最简单方法是什么?我需要这个来序列化
property_names=[p for p in dir(SomeClass) if isinstance(getattr(SomeClass,p),property)]
inspect.getmembers
也获取继承的成员(并通过谓词选择成员,这里我们对isprop
进行了编码,因为它不在模块inspect
中的许多预定义成员中;当然,如果您愿意,您也可以使用lambda
。唉,这将丢失继承的属性。。。!我已经尝试过这个方法,它也适用于继承类。相关:
import inspect
def isprop(v):
return isinstance(v, property)
propnames = [name for (name, value) in inspect.getmembers(SomeClass, isprop)]