在Python中多次创建turtle对象
我正在画一些数字。然而,一旦屏幕关闭,我就无法再次创建它 例如,以下简单代码起作用:在Python中多次创建turtle对象,python,turtle-graphics,Python,Turtle Graphics,我正在画一些数字。然而,一旦屏幕关闭,我就无法再次创建它 例如,以下简单代码起作用: import turtle t = turtle.Turtle() t.speed(0) t.dot() t.goto(100, 100) turtle.done() 但是,在以下代码中,在第二次绘制时发生错误: import turtle # FIRST DRAWING: t = turtle.Turtle() t.speed(0) t.dot() t.goto(100, 100) turtle.don
import turtle
t = turtle.Turtle()
t.speed(0)
t.dot()
t.goto(100, 100)
turtle.done()
但是,在以下代码中,在第二次绘制时发生错误:
import turtle
# FIRST DRAWING:
t = turtle.Turtle()
t.speed(0)
t.dot()
t.goto(100, 100)
turtle.done()
# SECOND DRAWING:
t = turtle.Turtle() # ERROR OCCURS HERE WHEN FIRST WINDOW IS CLOSED.
t.speed(0)
t.dot()
t.goto(-100, -100)
turtle.done()
错误是:
Traceback (most recent call last):
File "rptTurtle.py", line 12, in <module>
t = turtle.Turtle()
File "/usr/lib/python3.7/turtle.py", line 3816, in __init__
visible=visible)
File "/usr/lib/python3.7/turtle.py", line 2557, in __init__
self._update()
File "/usr/lib/python3.7/turtle.py", line 2660, in _update
self._update_data()
File "/usr/lib/python3.7/turtle.py", line 2646, in _update_data
self.screen._incrementudc()
File "/usr/lib/python3.7/turtle.py", line 1292, in _incrementudc
raise Terminator
turtle.Terminator
回溯(最近一次呼叫最后一次):
文件“rpturtle.py”,第12行,在
t=海龟。海龟()
文件“/usr/lib/python3.7/turtle.py”,第3816行,在__
可见=可见)
文件“/usr/lib/python3.7/turtle.py”,第2557行,在__
自我更新()
文件“/usr/lib/python3.7/turtle.py”,第2660行,在更新中
自我更新数据()
更新数据中的文件“/usr/lib/python3.7/turtle.py”,第2646行
self.screen.\u incrementudc()
文件“/usr/lib/python3.7/turtle.py”,第1292行,在增量UDC中
上升终止符
乌龟,终结者
问题在哪里?如何纠正?独立Python Turtle的设计不允许在退出后重新启动。您可以通过在tkinter程序中使用嵌入式turtle来解决这个问题。但是,似乎更简单的做法是不退出turtle,而是重置()
屏幕以生成新图形
以下示例将显示第一个图形,如果单击屏幕上的鼠标按钮,它将重置屏幕并显示第二个图形:
from turtle import Screen, Turtle
def first_drawing():
turtle = Turtle()
turtle.speed('fastest')
turtle.dot()
turtle.goto(100, 100)
def second_drawing():
turtle = Turtle()
turtle.speed('fastest')
turtle.dot()
turtle.goto(-100, -100)
def switch(x, y):
screen.onclick(None)
screen.reset()
second_drawing()
screen = Screen()
screen.onclick(switch)
first_drawing()
screen.mainloop()
我们可以使用绘图函数的
列表
,修改此代码以处理任意数量的绘图。以上代码有效。但我想让它起作用:first_drawing();第二张图纸()