我有一个已定义的对象(简化如下),并希望将一个元素作为列表返回。
是否有比下面更简单的方法?
class objectRecord(object):
def __init__(self,fields):
self.time=fields[0]
self.definition=fields[1]
self.name=fields[2]
self.source=fields[3]
self.size=fields[4]
self.value=fields[5]
self.increasedsize=fields[6]
self.count=fields[7]
其余__init__
省略
def getList(self):
return [self.name,self.definition,self.name,self.source,self.size,self.value,self.increasedsize,self.count]
其余课程省略
答案 0 :(得分:6)
您可以获取包含所有对象属性的字典:
def get_attrs_dict(self):
return self.__dict__
如果您只想要值列表:
def get_attrs_list(self):
return self.__dict__.values()
答案 1 :(得分:5)
以下是通过getattr()
:
def getList(self):
attributes = 'time definition name source'.split()
return [getattr(self, attribute) for attribute in attributes]
如果需要,您可以向列表中添加更多属性。
答案 2 :(得分:0)
作为马克评论的后续行动:看起来非常像你真正想要的是像这样写__init__
:
def __init__(self, fields):
self.fields = fields # or maybe fields[:] if you need to make a copy
self.definition, self.name, ... , self.count = self.fields
这是定义变量的更方便的方法,并提供了一种非常清晰的方式来访问所有值(通过self.fields
)。