Pythonturtle.Terminator错误

6 python turtle-graphics python-3.6 python-turtle

当我使用海龟模块用这个简单的函数画一个圆时:

def draw_shape(self):
    canvas = Screen()
    t = Turtle()
    t.circle(self.r)
    canvas.exitonclick()
Run Code Online (Sandbox Code Playgroud)

当我第一次调用此函数时,它会打开一个新窗口并绘制一个圆圈,我单击它退出,当我尝试再次从控制台中的菜单调用此函数时,我收到错误:

Original exception was:
Traceback (most recent call last):
  File "main.py", line 136, in <module>
    main()
  File "main.py", line 132, in main
    OPTIONS[user_input][1](shapes)
  File "main.py", line 48, in handle_sixth_menu_option
    t = Turtle()
  File "/usr/lib/python3.6/turtle.py", line 3816, in __init__
    visible=visible)
  File "/usr/lib/python3.6/turtle.py", line 2557, in __init__
    self._update()
  File "/usr/lib/python3.6/turtle.py", line 2660, in _update
    self._update_data()
  File "/usr/lib/python3.6/turtle.py", line 2646, in _update_data
    self.screen._incrementudc()
  File "/usr/lib/python3.6/turtle.py", line 1292, in _incrementudc
    raise Terminator
turtle.Terminator
Run Code Online (Sandbox Code Playgroud)

小智 1

您可以尝试以下操作:

def draw_shape(self): 
    import turtle as t
    canvas = Screen() 
    t.circle(self.r)                                                    
    canvas.exitonclick()
Run Code Online (Sandbox Code Playgroud)

您的代码无法正常工作的原因是您def之前已经通过单击退出删除或退出了函数中的海龟实例一次。因此,通过使用import turtle as t您将再次调用它并创建一个新实例。