最近对pygame感兴趣,在网上找了教程来学习(网址:http://eyehere.net/2011/python-pygame-novice-professional-index/),但当我把上面的代码复制到Python IDLE中运行时,却发现明明点击了游戏窗口的关闭按钮,但就是无法让其关闭,并且窗口就对我的操作毫无反应。

在研究了网上教程的代码后,发现问题出在退出代码上

from sys import exit    #问题所在
......#游戏主循环
while True:......event = pygame.event.wait()if event.type == QUIT:exit()

教程代码中的from语句导入了sys模块的exit,sys.exit()与默认的exit()有着一定的区别(我以前一直以为它们是一个函数)。

#PythonShell的输出结果:默认的exit函数
>>> help(exit)
Help on Quitter in module _sitebuiltins object:class Quitter(builtins.object)|  Methods defined here:|  |  __call__(self, code=None)|      Call self as a function.|  |  __init__(self, name, eof)|      Initialize self.  See help(type(self)) for accurate signature.|  |  __repr__(self)|      Return repr(self).|  |  ----------------------------------------------------------------------|  Data descriptors defined here:|  |  __dict__|      dictionary for instance variables (if defined)|  |  __weakref__|      list of weak references to the object (if defined)#PythonShell的输出结果:sys.exit
>>> import sys
>>> help(sys.exit)
Help on built-in function exit in module sys:exit(...)exit([status])Exit the interpreter by raising SystemExit(status).If the status is omitted or None, it defaults to zero (i.e., success).If the status is an integer, it will be used as the system exit status.If it is another kind of object, it will be printed and the systemexit status will be one (i.e., failure).

可以看出,两个exit函数一个是来自“_sitebuiltins”模块,一个是来自“sys”模块。

回到问题本身,最后经过试验,我发现有三种解决办法:

  • 第一种方法是在exit方法前加一句pygame.quit(),以此释放掉占用的资源
  • 第二种方法是删除掉from语句,当点击关闭按钮时,会弹出对话框:

点击“确定”或“取消”后就能成功退出程序

  • 第三种方法是直接双击py文件运行,在这种情况下,无论exit函数是什么版本,都可以正常退出

不知道起什么标题 03相关推荐

  1. 自媒体爆文标题怎么写?4个万能标题模板,请收好

    自媒体爆文标题怎么写?大家都知道,对于一篇自媒体爆文来说,标题是非常重要的,标题是人们对于文章的第一印象,决定了文章70%的打开率,但是很多新手都不知道爆文标题到底应该怎么写,今天就给带大家介绍一下, ...

  2. android gridview不显示 自定义,Android gridview和自定义标题

    我正在努力实现以下GUI: 对于红线下方的9个元素(线下的所有内容均应可滚动),我使用了按预期工作的gridview布局.但是实际上我不知道如何制作标题. 到目前为止,我的xml: xmlns:too ...

  3. 火车头双标题插件-火车头采集器双标题插件下载及安装教程

    火车头双标题插件,为什么这么多人使用火车头双标题插件?因为双标题组合增强了标题的相关性和关键词密度,同时在词库方面也有了更多的展现,收录后也会有2个长尾词参与排名.详细参考图片 怎么设置火车头双标题? ...

  4. 【HTML 教程系列第 7 篇】什么是 HTML 中的标题标签 h1~h6

    这是[HTML 教程系列第 7 篇],如果觉得有用的话,欢迎关注专栏. 我们先来看一段代码,以及在浏览器运行后的效果 即使我们现在不知道什么是标题标签,仅从浏览器效果也能看出来这首<劝学> ...

  5. 首席新媒体运营商学院创始人黎想:如何写出爆款短视频标题

    最近有很多短视频行业的朋友跟我聊天,说自己内容制作完成之后,最大的问题就是不知道怎么取标题.其实做运营的同学都知道,好的标题能够辅助视频内容的传播,而不好的标题甚至会埋没一个优秀的视频内容. 很多人都 ...

  6. html一排小标题怎么写,如何写标题吸引人,100个优美小标题推荐

    我们自媒体人都知道标题的重要性,一个好的标题可以给我们带来巨大的流量,如果你想写一个吸引人的标题的话,可以按照下面的方法来写. 1.经历型标题 经历型标题是指通过实践得出的经验然后分享,这类标题获得用 ...

  7. ただの南條きみつだ。

    标题借用了 南條愛乃 的 Twitter ID 格式,旨在记录 NOIp 2018 前后一个多月的事情-- 已经好久没写日记了,和自己的约定也所剩无几了,要说心血来潮于是便去做的事情有很多,但做到最后 ...

  8. 物联网的常用几种协议

    最近公司组内要研究这个了 ,有个java大哥又弄个什么低代码的...可笑至极, 所以就发发总结一下 ,想做物联网关多支持点协议比什么不好~~ 老生常谈啊!! 大伙别喷我主要公司招人太水.... htt ...

  9. 关于UUID的二三事

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:沉默剑士 www.jianshu.com/p/d77 ...

最新文章

  1. OKR能带来哪些价值?
  2. [BZOJ 2839] 集合计数
  3. power linux 安装系统,powershell 安装服务器
  4. 例子:倒计时按钮可用
  5. 推荐:常见算法的python实现(github上25000多star)
  6. SQL Server DATEDIFF() 函数(SQL计算时间差)
  7. linux设备和驱动注册,Linux驱动第五篇-----驱动注册和生成设备节点
  8. java创建一个成员方法吗,java构造方法和成员方法的区别
  9. Linux工作笔记-使用alias简化Linux命令(包含.bash和.cshrc)
  10. 【BZOJ4196】[Noi2015]软件包管理器 树链剖分
  11. 学Java不得不看的技术书
  12. 朋友,谁会Symbian S40 Symbian S60 v3/v5 Android?
  13. IDEA中,更换背景颜色
  14. fms 连 mysql_FMS+Thinkphp+Mysql 直播源代码,开源可消耗
  15. MacBook系统升级问题
  16. 信号与系统 频域分析
  17. 应届生如何获取招聘信息
  18. C# 求Sn=a+aa+aaa+...+aa...a(n个a)的值
  19. 测一测自己的Sql能力之MYSQL的GROUPBY你弄懂了吗?
  20. 国产LIN收发器芯片SIT1028,PIN to PIN替代TJA1028

热门文章

  1. 2013年10月17日_羊豆豆_新浪博客
  2. excel高级筛选怎么用_表格技巧—Excel高级筛选怎么用
  3. subline修改html模板,sublime Text 3 emmet自定义HTML模板的方法
  4. AI文娱独角兽Video++极链科技完成C1轮,5个月融资10.7亿元
  5. C语言 | 常见问题汇总
  6. CV_shortcomings of the original GAN
  7. C++学习continue用法
  8. android的资源混淆,android混淆资源引发的血案以及学习感受资源混淆
  9. ZOJ 3717 二分+2-sat判定。
  10. 严格身份证格式校验,真实身份证号校验方法文件CheckIdCardUtil.js