PyCharm中多文件调用turtle模块时对象无法正确实例化问题
多模块调用Turtle时实例化异常的排查与解决
问题原因
- 构造函数拼写错误:Player类里的初始化方法写成了
__int__,这是低级笔误——Python类的构造函数必须是__init__,拼写错误导致这个方法完全不会被执行,Turtle的初始化逻辑和你设置的shape属性都没生效。 - player.py中存在无效代码:文件末尾的
screen.exitonclick()属于冗余代码,而且该文件内未定义screen变量,运行时会触发NameError。
修正后的代码示例
player.py
from turtle import Turtle class Player(Turtle): # 修正构造函数名称 def __init__(self): super().__init__() self.shape('turtle')
main.py
from player import Player from turtle import Screen screen = Screen() player = Player() screen.exitonclick()
验证说明
修正后运行main.py,Player实例会正确继承Turtle的属性并设置turtle形状,多模块环境下的调用逻辑和单模块保持一致,无需修改Python解释器路径。
内容的提问来源于stack exchange,提问作者Blue-Spartan
相关产品推荐
相关产品推荐

