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

Python turtle开发乒乓球游戏报错:Turtle对象无onkeyrelease属性如何解决

问题修复方案

错误原因

  • onkeyrelease是turtle.Screen类的键盘事件方法,不属于Turtle实例对象,你尝试调用bar.onkeyrelease自然会报属性不存在的错误
  • 报错提示的onrelease是Turtle对象绑定鼠标点击释放事件的方法,和你要实现的键盘按键释放功能不匹配,不需要用这个方法
  • 额外还有个小问题:你定义的r函数中调用bar.right()没有传入旋转角度参数,后续运行也会报错

修复步骤

  1. 替换绑定按键释放事件的调用主体为你创建的background(Screen实例),绑定前必须调用listen()方法让窗口监听输入
  2. 给bar.right()补充旋转角度参数,比如和左转保持一致设为50
  3. 程序末尾要加background.mainloop()维持窗口运行,不然程序会直接退出

修正后的核心代码

#imports
import random
import turtle
#turtle
ball = turtle.Turtle()
ball.shape("circle")
ball.color("red")
ball.goto(0, 0)
ball.penup()
background = turtle.Screen()
background.bgcolor("turquoise")
bar = turtle.Turtle()
bar.shape("square")
bar.shapesize(1, 5, 1)
bar.penup()
bar.speed(100000)
bar.sety(-70)
def l():
    bar.left(50)
def r():
    bar.right(50) # 补充旋转角度参数

background.listen() # 让窗口监听按键事件
# 用Screen实例绑定按键释放事件
background.onkeyrelease(l, "Left")
background.onkeyrelease(r, "Right") # 可按需补充右键绑定

background.mainloop() # 维持窗口运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:24:03