如何为列表中的每个值创建一个类的实例?

时间:2017-05-03 03:04:57

标签: python

例如,假设我有一个列表:

people = ["bob", "tom", "joe"]

我想为每个名字创建一个类实例。

我猜测没有简单的方法可以动态创建变量名称,如下所示:

for num in range(0, 3):
    person_"num" = Person(people[num])

我如何做到这一点?

3 个答案:

答案 0 :(得分:2)

根据评论中的建议使用字典对此有好处:

people = ["bob", "tom", "joe"]
person_lookup = {}
for p in people:
    person_lookup[p] = Person(p)

或更具惯用语:

people = ["bob", "tom", "joe"]
person_lookup = {p: Person(p) for p in people}

然后使用:

person_lookup["bob"].some_method_on_person()

答案 1 :(得分:1)

您可以使用exec来完成目标。

for num in range(0, 3):
    exec("person_"+str(num)+" = Person(people[num])")

答案 2 :(得分:0)

为什么不使用 scope "/", ExAdmin do pipe_through :browser post "/clients", ClientController, :create end 的列表呢?

Person

然后你可以按编号索引它们。