当前位置: 首页 > 工具软件 > PyChecker > 使用案例 >

再谈 PyChecker 在游戏引擎环境下的使用

丘畅
2023-12-01

           再谈 PyChecker 在游戏引擎环境下的使用

                      Horin | horin153@msn.com

    如果游戏引擎内嵌的脚本不是 Python 请忽略。

    最近开发任务较少,并感觉以前用 PyFlakes 检查的结果实在无关痛痒,就开始折腾 PyChecker。以前在 2D 游戏引擎下用过 PyChecker,请参见该文:PyChecker 在游戏引擎环境下的使用,url:http://blog.csdn.net/horin153/article/details/1613804

    时代在进步,PyChecker 也升级到了 0.8.19 版本;我做得游戏也从中小游戏过渡到了大型 3D MMORPG。项目的规模也大了数十倍,对程序进行静态检查的意义就更重要了。现总结几点如下:

1,最重要的一步是修正 PyChecker 的一个错误。
    如果 Python 版本为 2.5 或者更高,或者在检查时发现如下错误:
TypeError: __import__() takes at most 4 arguments (5 given)
    那就把 pychecker.checker.py 中 4 处与 __import__ 相关的地方,增加一个参数:level=-1 。因为从 Python 2.5 开始 __import__ 就增加了 level 参数,默认值为 -1:
__import__(name[, globals[, locals[, fromlist[, level]]]])

2,因为项目太大,模块间的交叉 import 很复杂,必须在合适的地方开启 PyChecker,否则很可能会异常退出。这样就最好新增一个模块,来控制 PyChecker 的运行。

3,因为是在游戏引擎环境下检查,所以应该在 PyChecker 开始检查前,尽可能把引擎内建的二进制模块 import 一遍;再把不需要检查的脚本模块(如导表数据等)import 一遍;这样这些模块就不会被 PyChecker 检查了。

4,PyChecker 的 options 很复杂,只需要挑选感兴趣的几个开启就可以了,否则可能报出太多的问题,让人找不到重点了。比如把没有使用的函数参数、没有使用的局部变量等选项关闭。

 类似资料: