You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python Turtle中同时运行两个函数实现两只海龟反向移动

问题原因

Turtle 是单线程图形库,默认按顺序执行代码,单独先后调用one()和two()只能看到两只海龟先后移动,无法实现同时运动的视觉效果。

可行解决方案

最稳定的实现方式是用ontimer定时器拆分移动步长,让两只海龟每次各移动一小段距离,利用人眼视觉暂留效果实现同步反向远离的效果,参考代码如下:

from turtle import *

a = Screen()
b = Turtle()
c = Turtle()

# 可自定义参数:每次移动步长、总移动次数
step_length = 2
move_count = 50
current_count = 0

def sync_move():
    global current_count
    if current_count < move_count:
        # 每次调用两只海龟各移动一个步长,方向相反
        b.forward(step_length)
        c.forward(-step_length)
        current_count += 1
        # 间隔16ms再次调度,约60帧/秒,移动流畅无卡顿
        a.ontimer(sync_move, 16)

# 启动移动逻辑,如需按键触发,可绑定到screen的onkey方法
sync_move()
# 保持窗口不关闭
a.mainloop()

补充说明

  • 如需调整移动速度,可修改step_length(步长越大移动越快)或ontimer的间隔时间(间隔越小移动越快)
  • 如需实现持续移动不停止,删掉步数判断逻辑即可
  • 不建议使用多线程实现该需求,Turtle的GUI操作不是线程安全的,容易出现界面崩溃、海龟移动异常等问题

内容的提问来源于stack exchange,提问作者icantcode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 06:36:04