2014-10-25 3 views
0

Как сделать так, чтобы круги в этом списке могли быть изменены или удалены позже? Разве список не отличается от реальных объектов?Python: объекты в списке

def drawAllBubbles(window,numOfBubbles): 
    bublist=list() 
    for x in range(numOfBubbles): 
     p1= random.randrange(1000) 
     p2= random.randrange(1000) 
     center= graphics.Point(p1,p2) 
     bubx = center.getX() 
     buby = center.getY() 
     r = random.randint(1, 255)#randomize rgb values 
     g = random.randint(1, 255) 
     b = random.randint(1, 255) 
     circle = graphics.Circle(center, 5) 
     circle.setFill(color_rgb(r, g, b)) 
     circle.setOutline("black") 
     circle.draw(window) 
     bublist.append(circle) 
    return bublist 
    window.getMouse() 

Эта часть сценария по существу рисует

enter image description here

И затем возвращает список кругов.

+0

'' 'bublist''' содержит круги. Они ** могут быть извлечены, использованы, изменены, удалены ... – wwii

+0

@wwii Могу ли я запускать «getX()» и «getY()» для каждого круга в списке? – aero26

+0

Если у '' 'Circle'' есть эти методы, то да. – wwii

ответ

1

объекты содержатся в bublist

Если вы итерацию по списку, вы можете изменить, удалить или перерисовывать круги. Например:

for bubble in bublist: 
    bubble.setOutline("green") 
    bubble.draw(window) 
+0

'for bubble in bublist:' 'a = bubble.getCenter()' 'b = a.getX()' 'c = a.getY()' 'print (a)' По какой-то причине я не может заставить это печатать. – aero26

+0

@ aero26 Эта строка кода попытается напечатать 'a', которая ссылается на объект' Point', возвращенный 'bubble.getCenter()'. Я предполагаю, что вы пытаетесь распечатать координаты, и в этом случае вы должны попробовать 'print ((b, c))'. В Python 2.x: 'print (b, c)' –

Смежные вопросы