在python 3.4.3中生成对象

时间:2015-07-09 18:35:48

标签: python class object iteration

所以我必须在我的代码运行时之前尝试生成对象,并且每次都失败了。作为一个非常简单的例子,我希望在运行程序时发生注释,以便生成类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)

我环顾四周,找不到任何有用的东西,我能理解。我也不想只是将对象写入新文件,然后像以前一样导入新文件。但是,如果这是唯一的方法,请告诉我! :)

非常感谢任何帮助,感谢一堆!!!!!

2 个答案:

答案 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__方法,以便按照您希望的方式进行打印