[英]Making unique identifier in Python
我用十个椭圆制作了一个简单的程序。 稍后我将与他们合作,并且需要移动椭圆形,因此每个椭圆形都需要唯一的名称。 但是,椭圆形很多,所以我不想在新的代码行中制作每个椭圆形。 我使用了循环,但随后无法为其指定唯一的名称。 例如:
self.oval_id1 = self.canvas.create_oval(40,40,60,60)
self.oval_id2 = self.canvas.create_oval(60,40,80,60)...等
有什么办法可以让这样的名字循环吗?
import tkinter
class Main:
def __init__(self):
self.canvas = tkinter.Canvas(width=500, height=300)
self.canvas.pack()
x, y = 50, 50
for i in range(10):
self.canvas.create_oval(x-10,y-10,x+10,y+10)
x += 30
main = Main()
即使技巧可以使您实现目标,您也不希望那样做。 您需要使其可迭代,请首先使用可迭代的容器,此处为列表。
class Main:
def __init__(self):
self.canvas = tkinter.Canvas(width=500, height=300)
self.canvas.pack()
self.oval_id = []
x, y = 50, 50
for i in range(10):
self.oval_id.append(self.canvas.create_oval(x-10,y-10,x+10,y+10))
x += 30
您现在可以使用self.oval_id[i]
访问第i个椭圆形
您可能需要setattr
:
因此,类似:
class Main:
def __init__(self):
self.canvas = tkinter.Canvas(width=500, height=300)
self.canvas.pack()
x, y = 50, 50
for i in range(10):
oval = self.canvas.create_oval(x-10,y-10,x+10,y+10)
setattr(self, 'oval_%d' % i, oval)
x += 30
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.