tef*_*ozi 22 python serialization properties
我有类SomeClass属性.例如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)
Run Code Online (Sandbox Code Playgroud)
列出属性的最简单方法是什么?我需要这个序列化.
Mar*_*ddy 37
property_names=[p for p in dir(SomeClass) if isinstance(getattr(SomeClass,p),property)]
Run Code Online (Sandbox Code Playgroud)
Ale*_*lli 25
import inspect
def isprop(v):
return isinstance(v, property)
propnames = [name for (name, value) in inspect.getmembers(SomeClass, isprop)]
Run Code Online (Sandbox Code Playgroud)
inspect.getmembers获取继承的成员(并通过谓词选择成员,这里我们编码isprop因为它不在模块中的许多预定义的成员之间inspect; lambda当然,如果您愿意,也可以使用a ).