如果我定义自己的调试模块时只有在开发时才能执行这些功能,那么当我准备发布最终版本时,是否有办法完全禁用那些功能?
我希望有一种巧妙的方法来使环境在字节码转换过程中完全跳过函数调用?我搜索了此内容,但可能使用了错误的搜索输入。
我正在为Blender开发一个附件,所以我认为我对编译或转换没有任何控制权。
是,Python具有-O
标志,表示:
删除断言语句和任何以
__debug__
值为条件的代码
因此,基本上,如果您使用assert
语句编写调试代码,或者在运行调试功能之前检查__debug__
的值,则可以使用-O
打开生产模式:
if __debug__:
run_debug_function()
您还可以通过将PYTHONOPTIMIZE
环境变量设置为某些非空字符串来启用优化,例如export PYTHONOPTIMIZE=1
在您的外壳中。
有关更多信息,请参考Python command line documentation