Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用变量实例化时,如何调用特定对象?_Python_Oop_Object_Instance - Fatal编程技术网

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

Python 使用变量实例化时,如何调用特定对象?,python,oop,object,instance,Python,Oop,Object,Instance,我看到的所有创建对象实例的代码都使用了一个变量,而对象实例的使用就像游戏一样是短暂的。一个新游戏将替换该实例,并且不需要调用以前的对象。或者我看到过手动生成的实例没有使用catchall变量。比如c1和c2等等 class Child: def __init__ (self, name,): self.name = name child = Child(name) 我已经创建了我的对象的多个实例,并通过将它们附加到列表中,将它们附加到另一个类中。但是,如果要更改实例

我看到的所有创建对象实例的代码都使用了一个变量,而对象实例的使用就像游戏一样是短暂的。一个新游戏将替换该实例,并且不需要调用以前的对象。或者我看到过手动生成的实例没有使用catchall变量。比如
c1
c2
等等

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


child = Child(name)
我已经创建了我的对象的多个实例,并通过将它们附加到列表中,将它们附加到另一个类中。但是,如果要更改实例的属性,我不知道如何使用用于实例化的通用变量“child”调用它。当我使用
c1
c2
来实例化时,我可以这样做:比如
c1.name
。但我必须手动编写
c1
c2
。与调用
child.name时相比,我只返回创建的最后一个子项


有人有什么建议吗?

如您所述,您可以使用列表来存储所创建对象的实例。例如,在现有代码的基础上,可以执行以下操作:

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'

请编辑代码,使其位于代码块中,以便可读。只需一个注释,您也可以使用列表理解来执行此操作:
my_objects=[Child(name)表示名称,在('one','two','three'four')。
我知道这可以写得更简洁,但我觉得,考虑到这个问题,更重要的是要清楚、简单地解释,而不要引入更多的“高级”语言功能:)不用担心,我只是想把它放在这里