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

Python Turtle开发Pong游戏时Paddle对象无screen属性报错如何解决?

问题原因

你自定义的Paddle类继承了turtle.Turtle,但没有在子类构造方法中优先调用父类的构造方法,turtle.Turtle的内置属性(比如报错提到的screen)都是在父类构造逻辑中完成初始化的,你直接调用self.shape()等父类方法时,相关依赖属性还没有创建,就会触发属性不存在的报错。
另外你代码中match case分支写的是列表匹配规则,但你实际传参用的是元组,会导致匹配失败,默认走兜底逻辑。

修复方案

修改你的Paddle类代码如下:

class Paddle(turtle.Turtle):
    def __init__(self, color: str, shape: str =None, deltaMov=None, coordinates=None):
        # 优先调用父类构造方法,初始化内置属性
        super().__init__()
        if shape:
            self.shape(shape)
        self.speed(0)
        self.color(color)
        self.penup()
        match coordinates:
            # 把列表匹配改成元组匹配,适配你传入的元组参数
            case (int(x), int(y)):
                self.goto(x, y)
            case _:
                self.goto(0, 0)
        match deltaMov:
            # 同理把列表匹配改成元组匹配
            case (int(x), int(y)) | (float(x), float(y)):
                self.dx = x
                self.dy = y
                self.originals = (x, y)
            case _:
                self.dx = 0
                self.dy = 0    

修改完成后即可正常运行Pong游戏逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:57:04