我正在尝试制作一个计时器来每秒执行一段代码,比如说,在 python 中使用 tkinter。但不是每秒执行一次代码,即在画布上移动标签,它似乎缓冲并等待循环完成,然后才显示移动的标签。下面是我认为问题所在的一段编码。我个人认为第二个函数中的for循环会产生问题,但我不知道如何解决这个问题。
def roll(self):
number=randint(2,12)
print number
if self.a==0:
self.place_player_1(self.start_turn_pos_1,number+self.start_turn_pos_1)
self.start_turn_pos_1+=number
elif self.a==1:
self.place_player_2(self.start_turn_pos_2,number+self.start_turn_pos_2)
self.start_turn_pos_2+=number
return number
def place_player_1(self,start_turn_pos_1,number):
#Define the board
for i in range(self.start_turn_pos_1,number+1,1):
self.c.after(1000,self.move_1(i))
def move_1(self,i):
e1=streets_x[i]
g1=streets_y[i]
self.label_player1.place(x=e1,y=g1)