首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python turtle.Terminator错误

Python turtle.Terminator错误
EN

Stack Overflow用户
提问于 2017-10-18 02:27:28
回答 3查看 10.3K关注 0票数 1

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

代码语言:javascript
复制
def draw_shape(self):
    canvas = Screen()
    t = Turtle()
    t.circle(self.r)
    canvas.exitonclick()

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

代码语言:javascript
复制
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
EN

回答 3

Stack Overflow用户

发布于 2022-01-01 18:54:21

这是因为turtle模块(目前大多数参考实现)使用了一个名为_RUNNING的类变量。在使用exitonclick()方法的过程中,这将变为false。

将您的代码更改为下面的代码应该会有所帮助。

代码语言:javascript
复制
import turtle

def draw_shape(self):
    canvas = Screen()
    turtle.TurtleScreen._RUNNING=True
    t = turtle.Turtle()
    t.circle(self.r)
    canvas.exitonclick()
票数 2
EN

Stack Overflow用户

发布于 2017-12-09 14:09:00

很抱歉,我正在android应用程序中写这个答案,我不确定代码是否像它应该的那样突出显示,但你可以尝试以下操作-

代码语言:javascript
复制
def draw_shape(self): 
                import turtle as t
                canvas = Screen() 
                t.circle(self.r)                                                    
                canvas.exitonclick()

你的代码不能工作的原因是因为你已经通过点击退出删除或退出了'def‘函数中的海龟实例。因此,通过使用'import turtle as t‘,您将再次调用它并创建一个新实例。希望这能有所帮助!

票数 0
EN

Stack Overflow用户

发布于 2018-04-02 16:43:25

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46796846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档