Python类继承无报错但失效:Player继承Turtle类未生效问题
问题根源与解决方案
问题出在你把Python类的初始化方法名写错了:你定义的是__int__,但Python中类的初始化方法必须是__init__。这个错误不会触发语法报错,因为__int__是一个合法的自定义方法,但实例化对象时Python会自动调用__init__而非__int__,所以你设置的形状、颜色、位置等属性完全没被执行,最终使用的是父类Turtle的默认初始化逻辑(默认箭头形状、中心位置)。
修正步骤
- 将
__int__重命名为__init__ - 在自定义初始化方法中调用父类
Turtle的初始化方法(通过super()),确保父类的基础逻辑正常运行
修正后的代码示例
Player类的正确实现
from turtle import Turtle class Player(Turtle): def __init__(self): # 调用父类Turtle的初始化方法 super().__init__() # 你的自定义属性设置 self.shape("turtle") self.color("green") self.penup() self.goto(0, -280)
main.py中的实例化
from player import Player from turtle import Screen screen = Screen() screen.setup(width=600, height=600) screen.tracer(0) player = Player() screen.exitonclick()
这样修改后,实例化Player时会自动执行你的自定义初始化逻辑,海龟的形状、颜色和起始位置就会按你的设置生效了。
内容的提问来源于stack exchange,提问作者Archil Mamporia
相关产品推荐
相关产品推荐

