迭代在python中创建对象

时间:2014-03-05 05:55:39

标签: python-2.7

我想从我创建的类中动态创建许多对象:

class student(object):
   pass

myList=[x,y,z]

for obj in myList:
   obj=student()

现在这是理论,但是翻译给了我:

NameError: name 'x' is not defined

那么,如何从我的自定义类创建大量对象?

谢谢

1 个答案:

答案 0 :(得分:0)

x, y, z被视为变量。由于它们未在任何地方定义,因此您将获得NameError异常。要执行您想要的操作,您可以使用None初始化列表:

myList = [None, None, None]

然后,请注意:

for obj in myList:
    # some modification to obj

myList中的元素不会被修改,因为obj会在每个迭代中获得元素的副本。您可以使用索引来访问列表中的元素:

myList = [None, None, None]

for index in range(len(myList)):
    myList[index] = student()