所以我必须在我的代码运行时之前尝试生成对象,并且每次都失败了。作为一个非常简单的例子,我希望在运行程序时发生注释,以便生成类foo的对象:
class foo:
def __init__(self, name, amount, bool):
self.name = name
self.amount = amount
self.bool = bool
desired_names = ['name1', 'name2', 'name3']
for x in desired_names:
#Create objected assigned to the item in list, and give
#all the objects an amount of 100 and a bool of True
#This shoudl create:
#name1 = foo('name1', 100, True)
#name2 = foo('name2', 100, True)
#name3 = foo('name3', 100, True)
我环顾四周,找不到任何有用的东西,我能理解。我也不想只是将对象写入新文件,然后像以前一样导入新文件。但是,如果这是唯一的方法,请告诉我! :)
非常感谢任何帮助,感谢一堆!!!!!
答案 0 :(得分:4)
使用list comp存储对象:
desired_names = ['name1', 'name2', 'name3']
objs = [foo(name,100, True) for name in desired_names]
或者按名称访问的词典:
d = {name:foo(name,100, True) for name in desired_names}
答案 1 :(得分:3)
您可以列出要创建的对象:
object_list = []
for x in desired_names:
object_list.append(foo(x,100,True))
print object_list
您还必须在班级中定义__str__
方法,以便按照您希望的方式进行打印