我见过的所有创建对象实例的代码都使用了变量,并且对象实例的使用期限很短,例如游戏。一个新游戏将替换该实例,并且无需重新调用以前的对象。或者我看到手动生成的实例不使用catchall变量。像c1
和c2
一样,依此类推。
class Child:
def __init__ (self, name,):
self.name = name
child = Child(name)
我创建了对象的多个实例,并将它们附加到列表中,从而将它们附加到另一个类中。但是,如果要更改实例的属性,我不知道如何使用用于实例化的通用变量“ child”来调用它。当我使用c1
或c2
进行实例化时,可以这样做:就像c1.name
一样。但是我将不得不手动编写c1
或c2
。与之相对,当我致电child.name
时,我只返回创建的最后一个孩子。
有人建议吗?
答案 0 :(得分:4)
如前所述,您可以使用列表来存储创建的对象的实例。例如,在您拥有的代码的基础上,您可以执行类似的操作:
my_objects = []
for name in ('one', 'two', 'three', 'four'):
child = Child(name)
my_objects.append(child)
然后,如果您想调用创建的第二个对象,则可以从列表中访问它:
child = my_objects[1] # this is the second one you created
print(child.name) # this prints 'two'
child.name = 'second' # now the name is second!
或者,您可以直接致电my_objects[1].name = 'second'
。