我有一个函数,它返回两个列表,符号和数据,其中相应的值具有相同的索引。例如,symbols[i]
提供变量名称,data[i]
给出实际值(int
)。
我想使用这两个列表动态创建一个具有以下格式的静态值的类:
class a:
symbols[i] = data[i]
symbols[i+1] = data[i+1]
等等,以便我以后可以参考这样的值:
a.symbols[i]
a.symbols[i+1]
其中symbols[i]
和symbols[i+1]
应替换为所需的变量名称,例如a.var1
或a.var2
如何实现这一目标?
编辑:在下面添加了详细信息
所以我有一个主程序让我们说def main()应该在这个样式的list.dat中读取:
dimension1;0.1
dimension2;0.03
dimension3;0.15
并将值分隔为符号和数据列表。
所以我不知道这些列表中有多少值。我想动态创建一个类,以便能够引用主程序中的值,并将类作为参数提供给子类,如def sub1(NewClass,argument1,argument2)等。目前我正在使用手动创建了以下格式的简单python列表(list.py):
dimension1 = 0.1
dimension2 = 0.03
dimension3 = 0.15
然后在主程序和子函数中使用list import *,这会导致SyntaxWarning告诉我import *只允许在模块级别使用。所以我真正想要的是一种智能且一致的方式来处理参数列表并将其转移到另一个函数
答案 0 :(得分:1)
您可以使用type
动态创建一个类。如果我理解你想在这里实现的目标,你的代码将如下所示:
my_classes = []
for i in range(0, len(data), 2):
my_classes.append(
type('A%d' % i, (), {'var1': data[i], 'var2': data[i+1]})
)
答案 1 :(得分:1)