Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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 如何使用不同的变量y绘制多个对象?_Python_List_Oop_Pygame - Fatal编程技术网

Python 如何使用不同的变量y绘制多个对象?

Python 如何使用不同的变量y绘制多个对象?,python,list,oop,pygame,Python,List,Oop,Pygame,我在程序中创建了一个类Rack(object),以及在屏幕上绘制对象的方法draw()。我需要画10个相同的对象,但是使用不同的变量y(每个下一个对象必须增加60) 我尝试附加列表中的每个对象,然后通过 for i in list: i.y += 60 但程序仍在绘制相同的对象 我的课程和方法: class Rack(object): def __init__(self, x, y, height, width): self.x = x self.y

我在程序中创建了一个类
Rack(object)
,以及在屏幕上绘制对象的方法
draw()
。我需要画10个相同的对象,但是使用不同的变量y(每个下一个对象必须增加60)

我尝试附加列表中的每个对象,然后通过

for i in list:
  i.y += 60
但程序仍在绘制相同的对象

我的课程和方法:

class Rack(object):
    def __init__(self, x, y, height, width):
        self.x = x
        self.y = y
        self.height = height
        self.width = width

    def draw(self, win):
        pygame.draw.rect(win, (0, 255, 0), (self.x, self.y, self.height, self.width), 1)
你能告诉我怎么走吗?

你的环路:

for i in list:
  i.y += 60
将在
列表
中找到每个对象(请将其重命名为类似
我的列表
),并将其y值加60。这并没有您想要的效果,它只是将每个对象移动60个单位。有很多方法可以按照您的意愿来实现这一点,这里有一种:

for n,i in enumerate(my_list): # I have renamed the list here
  i.y += 60*n

通过使用
枚举
,您不仅可以得到列表中的每个元素(
i
),还可以得到您所在元素的计数(
n
)。然后,您可以使用
n
变量来确保以不同的量移动不同的对象。

这里的
列表
对象是什么?请记住,您需要先递增一次,再递增两次,依此类推。
list
是一个内置函数。您不应该命名列表对象
list