Python turtle.Terminator错误

时间:2017-10-17 18:27:28

标签: python python-3.6

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

def draw_shape(self):
    canvas = Screen()
    t = Turtle()
    t.circle(self.r)
    canvas.exitonclick()

第一次调用此功能时,它会打开一个新窗口并画一个圆圈,我点击它退出,当我尝试再次从控制台菜单调用此功能时出现错误:

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

2 个答案:

答案 0 :(得分:0)

我很抱歉,但我在Android应用程序中写了这个答案,我不确定代码是否突出显示,因为它应该是或不是,但你可以尝试以下 -

def draw_shape(self): 
                import turtle as t
                canvas = Screen() 
                t.circle(self.r)                                                    
                canvas.exitonclick()

您的代码无法正常工作的原因是因为您已经删除或退出了&#39; def&#39;中的海龟实例。通过单击退出,功能已经一次。因此,通过使用“导入龟”作为t&#39;你再次调用它并创建一个新实例。希望这有帮助!

答案 1 :(得分:0)

这是由t = Turtle()引起的。你可以在函数的末尾添加turtle.bye()。