我还有另一个问题。当我尝试运行代码时,pygame启动,然后立即停止。
这是我的代码:
import pygame
import os
import time
import random
pygame.init()
pygame.font.init()
def main():
clock = pygame.time.Clock()
win = pygame.display.set_mode((Win_Width, Win_Height))
run = True
while run:
clock.tick(40)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
pygame.quit()
谢谢您的帮助。再见!
您的pygame循环包含在方法main
中。但是main
从未在任何地方被调用。考虑将以下块添加到文件的最底部
if __name__ == "__main__":
main()
此块基本上只是检查您是否直接调用此文件,如果是,则调用您的main
方法。
Core taxxe的答案在更详细地解释python的此功能方面做得很好
很遗憾,我还不能发表评论,尽管我会以这种方式回答您的问题。
在执行代码之前,Python解释器读取源文件并定义一些特殊变量/全局变量。如果python解释器正在将该模块(源文件)作为主程序运行,则它将特殊的__name__
变量设置为值“ main”。如果此文件是从另一个模块导入的,则__name__
将设置为导入模块的名称。该模块的名称可用作__name__
全局变量的值。
根据您的情况,您可以使用if
等或直接使用main()
调用来运行代码。
print "Always executed"
if __name__ == "__main__":
print "Executed when invoked directly"
else:
print "Executed when imported"
我希望这是可以理解和有益的。有关更多信息,请参见以下资源:
[不幸的是,我还不能发表评论,尽管我会这样回答您的问题。
在执行代码之前,Python解释器读取源文件并定义一些特殊变量/全局变量。如果python解释器将该模块(源文件)作为主程序运行,则它将特殊的_ _name__变量设置为值“ _ _main__”。如果此文件是从另一个模块导入的,则_ _name__将设置为该模块的名称。模块的名称可用作_ _name__全局变量的值。就您而言,您可以使用if等或直接调用main()来运行代码。
print "Always executed"
if __name__ == "__main__":
print "Executed when invoked directly"
else:
print "Executed when imported"
希望是可以理解和帮助的。有关更多信息,请参见以下资源: