使用变量实例化时如何调用特定的对象?

时间:2019-02-07 01:55:31

标签: python oop object instance

我见过的所有创建对象实例的代码都使用了变量,并且对象实例的使用期限很短,例如游戏。一个新游戏将替换该实例,并且无需重新调用以前的对象。或者我看到手动生成的实例不使用catchall变量。像c1c2一样,依此类推。

class Child:
    def __init__ (self, name,):
        self.name = name


child = Child(name)

我创建了对象的多个实例,并将它们附加到列表中,从而将它们附加到另一个类中。但是,如果要更改实例的属性,我不知道如何使用用于实例化的通用变量“ child”来调用它。当我使用c1c2进行实例化时,可以这样做:就像c1.name一样。但是我将不得不手动编写c1c2。与之相对,当我致电child.name时,我只返回创建的最后一个孩子。

有人建议吗?

1 个答案:

答案 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'