turtle窗口显示、隐藏与turtle.Terminator深层探究

本文详细探讨了Python turtle模块中turtle.Terminator异常的产生原因和解决方法。总结了异常现象,指出当窗口关闭后,turtle对象将失效并抛出异常。通过查看源代码,了解到_Terminator异常主要由_TurtleScreen.update方法中检测到_RUNNING为False时触发。文章提供了一种自定义的解决方法,并深入研究了异常的本质。
摘要由CSDN通过智能技术生成

目录

1、引发turtle.Terminator的现象

2、现象总结

3、解决turtle.Terminator

3.1 一种自定义的解决方法

3.2 Terminator异常的深入研究

4、turtle.Terminator总结


1、引发turtle.Terminator的现象

在用turtle绘图的时候,遇到一个窗口隐藏与显示的问题:

>>> import turtle

>>> turtle.fd(90) #将自动创建窗口

>>> turtle.bye()  #用语句关闭窗口

>>> turtle.home() #此时有异常

Traceback (most recent call last):

  File "<pyshell#3>", line 1, in <module>

    turtle.home()

  File "<string>", line 5, in home

turtle.Terminator

>>> turtle.home() #这个时候是可以正常显示新窗口的

>>>#关闭窗口

还有几种类似的情形(接着上面输入):

>>> p=turtle.Turtle() #有异常产生,但此时将创建窗口

Traceback (most recent call last):

 …

turtle.Terminator

>>> p.fd(90)

Traceback (most recent call last):

  File "<pyshell#8>", line 1, in <module>

    p.fd(90)

NameError: name 'p' is not defined

>>> turtle.fd(90)  #正常绘制

#######################################

>>>s=turtle.Screen()  #关闭后再新建窗口,正常

>>> turtle.fd(90)  #抛出异常,但再次调用时正常,类似上面的home

>>> s=turtle.Screen()  #关闭后再新建窗口,正常

>>> p=turtle.Turt

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值