我正在用 python 学习海龟图形,由于某种原因,屏幕上有第二只海龟,我什至还没有创建第二只海龟。我怎样才能摆脱第二只乌龟?
import turtle
s = turtle.getscreen()
t = turtle.Turtle()
for i in range(4):
t.fd(100)
t.rt(90)
turtle.exitonclick()
我正在用 python 学习海龟图形,由于某种原因,屏幕上有第二只海龟,我什至还没有创建第二只海龟。我怎样才能摆脱第二只乌龟?
import turtle
s = turtle.getscreen()
t = turtle.Turtle()
for i in range(4):
t.fd(100)
t.rt(90)
turtle.exitonclick()
起始位置的第二个海龟因为这条线而出现s = turtle.getscreen()。
不需要这一行(你不使用s),如果你删除它,这个海龟就会消失,但其余的代码似乎和以前一样工作。
Turtle 库公开了两个接口,一个是功能接口(针对初学者),一个是面向对象接口。你得到了额外的海龟,因为你混合了两个接口(@mkrieger1 的解决方案并没有完全解决这个问题)。
我总是推荐一个importlike:
from turtle import Screen, Turtle
screen = Screen()
turtle = Turtle()
for _ in range(4):
turtle.forward(100)
turtle.right(90)
screen.exitonclick()
这使您可以访问面向对象的接口并阻止功能接口。将两者混合会导致各种错误和工件。
要结合 mkrieger1 和 cdlane 的答案,您可以替换
s = turtle.getscreen()
和
s = turtle.Screen()
您仍然有一个保存屏幕的变量(以防万一您需要它),并且它不会在中心生成额外的海龟。