在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();第二张图纸()