所以简单地说,我希望不同的对象有自己的滴答循环代码独立运行(因为在一个滴答循环中并不能停止我应用程序中所有其他的滴答循环)。在
我已经创建了一个基本模块,它有一个用于形状的类和用于生成它们的主体,但是类的tick循环支持main parts循环。在
我甚至尝试过将代码分成两个模块,看看是否可以工作,但这两个循环仍然是分开运行的。在
这是我的代码:
(主代码)
from random import *
from tkinter import *
from time import *
import RdmCirClass
size = 500
window = Tk()
count = 0
d = 0
shapes = []
canv = Canvas(window, width=size, height=size)
canv.pack()
window.update()
while True:
col = choice(['#EAEA00'])
x0 = randint(0, size)
y0 = randint(0, size)
#d = randint(0, size/5)
d = (d + 0.01)
outline = 'white'
shapes.append(1)
shapes[count] = RdmCirClass.Shape("shape" + str(count), canv, col, x0, y0, d, outline)
shapes[count].spawn()
count = count+1
print("Circle Count: ",count)
window.update()
(形状等级)
^{pr2}$
粗略地说,有三种方法可以实现你想要的。哪一个是最好的很大程度上取决于您要对每个独立单元做什么,以及您有哪些性能约束和需求。在
第一个解决方案是有一个独立的循环,在每次迭代中简单地调用每个对象的
tick()
方法。从概念上讲,这可能是最简单的实现方法。在另外两个解决方案涉及多个线程或多个进程。这些解决方案有时具有相当大的复杂性,但好处是可以让操作系统为每个对象安排
tick()
方法的运行。在我不明白您的代码在做什么,但我的建议是使用线程:https://pymotw.com/2/threading/
相关问题 更多 >
编程相关推荐