gpt4 book ai didi

python-3.x - 在 OS X 中运行 Python 3 Turtle 时出现奇怪的终结者错误

转载 作者:行者123 更新时间:2023-12-02 03:18:35 24 4
gpt4 key购买 nike

当我运行一个 turtle 图形单元并绘制一些东西时它没问题,但是如果我关闭窗口并再次运行该单元,我会收到一个名为 Terminator 的奇怪错误,我必须重新启动内核才能再次运行该单元.如果我尝试连续运行 2 个不同的 turtle 图形单元(这 2 个单元绘制不同的东西并且编码良好),我也会遇到这种情况。如果我运行其中一个,然后我重新启动内核,然后运行另一个,不会发生错误,但是必须一直重新启动内核并不好,并且让我感到不安。这只会发生在我的新 Macbook 上,
使用我的 PC Windows 一切都很好,我可以连续重复地运行 turtle 图形单元,我唯一需要做的就是关闭当前的 turtle 窗口以运行另一个。

import turtle
window = turtle.Screen()
t = turtle.Turtle()

t.forward(50)
turtle.mainloop()

如果我运行这段代码一次就可以了。但是如果我关闭 turtle 窗口并再次运行它而不重新启动内核,我会收到这个错误:
--------------------------------------------------------------------------
Terminator Traceback (most recent call last)
<ipython-input-2-48bfc10d8dfd> in <module>()
2
3 window = turtle.Screen()
----> 4 t = turtle.Turtle()
5
6 t.forward(50)

/Users/marti/anaconda/lib/python3.5/turtle.py in __init__(self, shape, undobuffersize, visible)
3814 shape=shape,
3815 undobuffersize=undobuffersize,
-> 3816 visible=visible)
3817
3818 Pen = Turtle

/Users/marti/anaconda/lib/python3.5/turtle.py in __init__(self, canvas, shape, undobuffersize, visible)
2555 self._undobuffersize = undobuffersize
2556 self.undobuffer = Tbuffer(undobuffersize)
-> 2557 self._update()
2558
2559 def reset(self):

/Users/marti/anaconda/lib/python3.5/turtle.py in _update(self)
2658 return
2659 elif screen._tracing == 1:
-> 2660 self._update_data()
2661 self._drawturtle()
2662 screen._update() # TurtleScreenBase

/Users/marti/anaconda/lib/python3.5/turtle.py in _update_data(self)
2644
2645 def _update_data(self):
-> 2646 self.screen._incrementudc()
2647 if self.screen._updatecounter != 0:
2648 return

/Users/marti/anaconda/lib/python3.5/turtle.py in _incrementudc(self)
1290 if not TurtleScreen._RUNNING:
1291 TurtleScreen._RUNNING = True
-> 1292 raise Terminator
1293 if self._tracing > 0:
1294 self._updatecounter += 1

Terminator:

我不知道为什么我会收到这个错误,并且我自己在互联网上发现了关于它的不良信息。如果我有不同的 turtle 细胞并在另一个之前运行,也会发生同样的错误。我发现的唯一一件事是在查找器上的 help() 命令中倾斜 turtle 。这就是我在这里找到的关于终结者的内容:
CLASSES
builtins.Exception(builtins.BaseException)
Terminator

class Terminator(builtins.Exception)
| Will be raised in TurtleScreen.update, if _RUNNING becomes False.
|
| This stops execution of a turtle graphics script.
| Main purpose: use in the Demo-Viewer turtle.Demo.py.
|
| Method resolution order:
| Terminator
| builtins.Exception
| builtins.BaseException
| builtins.object
|
| Data descriptors defined here:
|
| __weakref__
| list of weak references to the object (if defined)
|

我在编程方面有点新手,这个错误让我很不安。我希望有人能帮助我。也可能有助于解决问题,即当我运行 turtle 然后以正确的方式关闭窗口时,例如使用 mainloop(), turtle graphics 窗口似乎已关闭,但实际上我一直在码头上看到它条,就像它是否已最小化或它已经在运行,然后当我运行另一个 turtle 图形窗口时,可能是旧的以某种奇怪的方式保持打开的事实影响了新的,我得到了这个终结者错误。

最佳答案

可能这些小江湖代码就行了。
模块导入代码后。调用这些线 turtle.clear()
然后用turtle完成绘制后,转到下一个单元格并运行turtle.bye()

这是一个快速修复。

最好是在 turtle 完成绘制后在 turtle 窗口/ Canvas 上调用 exitonclick() 方法。
例如

turtle_window = turtle.Screen() 
........Draw something
turtle_window.exitonclick()

关于python-3.x - 在 OS X 中运行 Python 3 Turtle 时出现奇怪的终结者错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34956937/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com