我有一个函数,它返回两个列表、符号和数据,其中相应的值具有相同的索引。例如,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
然后在主程序和子函数中使用 from list import * ,这会导致 SyntaxWarning 告诉我 import * 只允许在模块级别。所以我真正想要的是一种智能且一致的方式来处理参数列表并将其传输到另一个函数
最佳答案
您可以使用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]})
)
关于python - 动态创建类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33569249/