【发布时间】:2019-10-12 13:59:34
【问题描述】:
如果我有如下元组列表:
Data = [
# OP, FLAG, IDENT, NAME
( Op.GA, Flag.GA, "GA", "Asset" ),
( Op.LP, Flag.LP, "LP", "Low" ),
( Op.HP, Flag.HP, "HP", "High" ),
( Op.CU, Flag.CU, "CU", "Custom" ),
]
有没有一种聪明的方法可以将其转换为对象列表,就像我做了以下操作一样:
Objects = [
# OP, FLAG, IDENT, NAME
OBJECT( Op.GA, Flag.GA, "GA", "Asset" ),
OBJECT( Op.LP, Flag.LP, "LP", "Low" ),
OBJECT( Op.HP, Flag.HP, "HP", "High" ),
OBJECT( Op.CU, Flag.CU, "CU", "Custom" ),
]
我希望有类似的东西
Objects = create( OBJECT, Data )
我想我设法弄清楚如何使用循环和元组解包一次转换一个元素(对我来说是新的)。所以本质上,迭代元组列表并在我将它们附加到第二个列表时一次构造一个对象。这是最好的处理方式吗?
原因:我试图允许外部代码将类似枚举的属性作为元组列表发送,然后使用它来生成类实例列表来表示类似枚举的数据。我需要类的唯一原因是允许外部代码使用命名成员引用数据,例如enum_ref.Ident(而不是enum_ref[2])。但也许有更好的方法来处理这种情况?
非常感谢任何建议。我对 Python 缺乏经验,因此您可以放心地假设我并不了解所有基础知识。
编辑:这是OBJECT 的定义。它是一个可以更改的自定义类,但是我需要以使其工作:
class OBJECT:
# construct / attributes
def __init__(self,index,value,ident,name):
self.Index = index # enum index or type-index
self.Value = value # actual value of the entry (any type)
self.Ident = ident # identifier string (for Blender and searching)
self.Name = name # display name
【问题讨论】:
-
OBJECT是你定义的类吗? -
是的,我会用类定义编辑
标签: python list tuples pack unpack