Динамические названия переменных, как это сделать?

 
0
 
Python
ava
RM2010 | 11.03.2010, 21:35

from tkinter import *
import random

app = Tk()
app.geometry('300x355+600+300')
canvas = Canvas(app, width=304, height=355)
canvas.pack(side=TOP)

for i in range(20):
y = random.randrange(300)
x = random.randrange(300)
square = canvas.create_rectangle(x,y,x+20,y+20, fill="yellow")

app.mainloop()



Как следует из кода, данная программа создаёт на канвасе 20 прямоугольников. Но как сделать так, чтоб каждый из них был под своим именем, чтоб потом к каждому из них можно было обращаться, двигать и т.д.

То есть смотреться это должно как-то вот так:

for i in range(20):
...
square+i = canvas.create_rectangle(x,y,x+20,y+20, fill="yellow")


и тогда появлялся бы square1, square2, square3 и т.д.

Заранее спасибо!
Kommentare (3)
ava
pythonwin | 11.03.2010, 22:19 #
если переменные упорядочены и одного типа, а также не известно сколько переменных нужно создать или тем более сколько было создано, то лучше использовать список или словарь. Все остальные решения типа exec или eval могут наружать безопастность работы программы и привести к ухудшению отладки.

später ergänzt:
примерно так:

from tkinter import *
import random
app = Tk()
app.geometry('300x355+600+300')
canvas = Canvas(app, width=304, height=355)
canvas.pack(side=TOP)
squares = []
for i in range(20):
y = random.randrange(300)
x = random.randrange(300)
squares.append(canvas.create_rectangle(x,y,x+20,y+20, fill="yellow"))
app.mainloop()
ava
RM2010 | 11.03.2010, 22:24 #
>>> то лучше использовать список и словарь.
Естественно, а можно примерчик кода - как переменным присваивать названия по списку?

später ergänzt:
Вроде работает, спасибо! smile3
ava
pythonwin | 11.03.2010, 22:59 #
Цитата (RM2010 @ 12.3.2010, 01:24 findReferencedText)
Вроде работает, спасибо! smile

пожалуйста smile
настоятельно советую прочитать документацию и написать десятка два программ-примеров
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden