1.说明
笔者是 python 初学者,使用的编辑器为 VS Code ,在使用《python编程:从入门到实践(第3版)》时,根据 “外星人入侵” 这个项目学习 pygame 代码知识,在手打第205页(也就是标号12.3)的时候,代码输入完成后运行却没有弹出 pygame 的窗口
2.代码展示
import sys
import pygame
class AlienInvasion:
"""管理游戏资源和行为的类"""
def __init__(self):
"""初始化游戏并创建游戏资源"""
pygame.init()
self.screen = pygame.display.set_mode((800,800))
pygame.display.set_caption("Alien Invasion")
def run_game(self):
"""开始游戏的主循环"""
while True:
# 侦听键盘和鼠标事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
# 让最近绘制的屏幕可见
pygame.display.flip()
if __name__ == '_main_':
# 创建游戏实例并运行游戏
ai = AlienInvasion()
ai.run_game()
3.发现问题
按道理说,这些代码运行后应该会弹出一个空的 pygame 窗口,可实际上却没有,在终端输出的时候也没有报错,那么问题出在哪呢?
4.解决
注意到这行代码:
if __name__ == '_main_':
问题就出在这里,在这里的 '_main_' 两边都只有一个下划线,但是正确使用时,两边应该要有两个下划线,也就是这样:
if __name__ == '__main__':
这样子就能解决问题了
5.写在最后
手打代码的缘故,导致这个问题容易被忽视,尤其对 python 新手来说。在本书前面的章节似乎也没怎么提到这行代码的含义及使用方法,我也不了解这里的知识,希望看到这里的各位能多去了解了解。当然这也只是我自己在学习时遇到的问题,如果你的代码完全正确但还是运行不了,去找找其他博客的解答吧。