为什么会有第二只乌龟?
Why is there a second Turtle?
我正在 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 库公开了两个接口,一个 functional 接口(对于初学者)和一个 object-oriented 接口。你得到了那只额外的乌龟,因为你混合了两个接口(@mkrieger1 的解决方案并没有完全解决这个问题)。
我总是推荐 import
比如:
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()
你仍然有一个变量来保存屏幕(以防你需要它),它不会在中心生成额外的海龟。
我正在 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 库公开了两个接口,一个 functional 接口(对于初学者)和一个 object-oriented 接口。你得到了那只额外的乌龟,因为你混合了两个接口(@mkrieger1 的解决方案并没有完全解决这个问题)。
我总是推荐 import
比如:
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()
你仍然有一个变量来保存屏幕(以防你需要它),它不会在中心生成额外的海龟。