pygame init()
不进行init不报错?
那它有啥用?
www.pygame.org给出的解释是:
pygame.init()初始化所有导入的pygame模块。如果模块初始化失败也不会引发异常,但初始化成功和失败的总数将会作为一个元组被返回。pygame.init()初始化所有导入的pygame模块是一种让一切顺利开始的便捷方法。但你始终可以手动去初始化各个模块,不过单独使用init()函数初始化模块如果失败了会引发异常。
你可能希望单独初始化不同的模块以加速你的程序或避免使用一些你的游戏当中没有的东西。
多次调用此init()是安全的:重复调用将不起作用。即使每个模块都进行pygame.quit()也是如此。
面向对象编程中,init起的作用都是在类中初始化一些属性。pygame是我们用python进行对象编程的众多工具包中的一个,在我们要动手用它完成我们的想法之前,电脑这个强迫症需要我们先检查一遍,各单位是否已准备ok,能否正常给我们提供帮助。而这个检查的动作,就是pygame.init()。其实就是在编程前的一些检查,游戏需要的一些硬件调用接口、系统功能接口是否有问题。如果有,他会在程序运行之前就反馈给你,方便你进行排查和规避。
至于为什么并非所有库都有这样的要求,我想这大概就是 pygame开发人员考虑的比别人周到的地方。