在turtle.bye()之后重新打开海龟

问题描述 投票:0回答:3

我有一些代码如下:

# My code here

turtle.bye()

之后有什么办法可以重新打开海龟窗口吗? 我知道你可以做到

turtle.clearscreen()
但这不会关闭海龟窗口。

我会接受任何允许我关闭海龟图形窗口然后重新打开它的答案,而无需打开并运行另一个Python程序来执行此操作。

提前谢谢您

python turtle-graphics
3个回答
2
投票

我见过@LukeTimmons 的方法有效但并不总是可靠的情况,而且并非在所有情况下都有效。 尝试一下这个解决方案:

import time
import turtle

turtle.dot(200, 'green')

time.sleep(2)

turtle.bye()

# These two lines (indirectly) resurrect turtle environment after turtle.bye()
turtle.Turtle._screen = None  # force recreation of singleton Screen object
turtle.TurtleScreen._RUNNING = True  # only set upon TurtleScreen() definition

turtle.dot(200, 'red')

turtle.mainloop()

它重置两个标志,防止海龟再次启动。 重新启动后创建自己的乌龟可能比使用默认的乌龟更安全,默认的乌龟可能会指向离开的环境。


1
投票

可能还有其他方法,但这是我知道的唯一方法。

from turtle import *

def turtle1():
    #Your code here

turtle1()

turtle.bye()

turtle1()

这应该重新运行您的代码,而无需重新输入。


0
投票

当我想要一个程序关闭海龟窗口并稍后打开它时,我发现重新加载海龟模块效果最好。 我这样做:

import turtle #make sure the current context sees the turtle package
import importlib
importlib.reload(turtle)
raphael = turtle.Turtle() #opens a window with the new turtle
© www.soinside.com 2019 - 2024. All rights reserved.