为何调用turtle.done()时提示不存在'done'属性?
问题解决:AttributeError: type object 'Turtle' has no attribute 'done'
你的问题核心是变量名覆盖了模块名:你先导入了turtle模块,又创建了一个名为turtle的Turtle实例,这直接把原有的turtle模块对象给替换成了实例对象。而done()是turtle模块的顶层函数,并非Turtle实例的方法,所以在实例上调用turtle.done()必然报错。
修复方案
方案1:重命名实例变量(推荐)
把Turtle实例的变量名改成t或其他不冲突的名称,保留原模块的引用:
import turtle from turtle import Turtle t = Turtle() t.forward(100) turtle.done() # 调用turtle模块的done()函数
方案2:仅导入模块,避免命名冲突
直接通过模块访问Turtle类,无需单独导入Turtle:
import turtle t = turtle.Turtle() t.forward(100) turtle.done()
总结:done()是模块级别的方法,必须通过原turtle模块调用,不能用Turtle实例调用。
内容的提问来源于stack exchange,提问作者Cytoflux
相关产品推荐
相关产品推荐

