如何在python中创建无限次迭代的对象?

use*_*865 0 python oop class list object

我是python的新手,我正在尝试创建一个程序来测试一些对象创建方法.目前,我正在编写一个程序,该程序涉及创建对象,为它们提供唯一的数字变量,并将它们分配给列表以供将来引用.这是我写的创建变量名称的内容:

def getRectangleName():
    rectName = list("Rectangle")
    SPAWNEDOBJECTLIST.append(len(SPAWNEDOBJECTLIST))
    rectName.append(str(len(SPAWNEDOBJECTLIST)))
    return rectName
Run Code Online (Sandbox Code Playgroud)

然后传递给某些东西将该字符串转换为变量名称.我试过eval(),因为某种原因知道这是坏的,但无论如何都没有用,并尝试了一些解决方法无济于事.

我认为有很多游戏在屏幕上有无限数量的字符.有没有一种既定的方法来迭代这样的对象?

对象本身具有X和Y,因此它们可以作为屏幕上显示矩形的参考点(未来的想法是让每个人自己移动,所以只需制作X和Y列表来绘制矩形没用).

编辑:问题是我不知道如何给每个对象提供自己的变量以将其放在列表中以供将来引用.

编辑2:我认为我实际上并没有问正确的问题,或者使用正确的术语.我需要能够在程序运行后动态创建无限数量的对象,并能够单独引用它们.

use*_*ica 5

问题是我不知道如何给每个对象提供自己的变量以将其放在列表中以供将来引用.

每当你认为你需要变量而没有输入你的程序时,你就会做错事.您不需要将某些内容分配给变量以将其放在列表中:

x = [1, 2, 3]                 # Note how I don't assign 1, 2, or 3 to variables.
x.append(4)                   # 4 doesn't get a variable either.
x.append(make_a_rectangle())  # We create a rectangle and stick it on the list.
do_stuff_with(x[4])           # We pass the rectangle to a function.

x = []                            # New list.
for i in xrange(n):
    x.append(make_a_rectangle())  # This happens n times.
# At this point, we have n rectangles, none of them associated with their own
# variable, none of them with a name.
Run Code Online (Sandbox Code Playgroud)

如果你认为你需要事物的名称(并且经常,你真的不需要名字),你可以使用一个字典:

x = {}
x['foo'] = make_a_rectangle()
do_stuff_with(x['foo'])
Run Code Online (Sandbox Code Playgroud)