Python pygame的主循环不';不行,pygame立即退出

Python pygame的主循环不';不行,pygame立即退出,python,module,pygame,Python,Module,Pygame,我还有一个问题。当我尝试运行代码时,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 = T

我还有一个问题。当我尝试运行代码时,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解释器将该模块(源文件)作为主程序运行,它会将特殊的
\uuuu name\uuu
变量设置为具有值“main”。如果此文件是从另一个模块导入的,
名称将设置为导入模块的名称。模块名称可用作
\uu name\uu
全局变量的值

在您的情况下,您可以使用
if
等或直接调用
main()
来运行代码

打印“始终执行”
如果名称=“\uuuuu main\uuuuuuuu”:
打印“直接调用时执行”
其他:
打印“导入时执行”
我希望这是可以理解和有益的。 有关更多信息,请参见以下几个来源:

您需要调用main()

因此:

如果名称=“\uuuuu main\uuuuuuuu”:
main()