在C / C ++应用程序中,我通过定义高级宏来开发轻微的构建变体
#define PRODUCTION_BUILD
#define DEBUG_BUILD
...
是否有某种等价物我可以用来有条件地包含更大的python应用程序的组件?
Python没有像C / C ++这样的预处理器。它也没有真正的常数。按照惯例,您可以通过在全部大写字母中键入“常量”来定义它们
DEBUG_BUILD = True
但除了惯例之外的任何事情都不会阻止它被修改。如果您只需要两个变体(调试/生产),则可以使用
__debug__
喜欢
if __debug__:
do something
else:
do something else
在运行python脚本时,或者通过PYTHONOPTIMIZE环境变量,将根据optimize标志设置此变量。
使用__debug__的好处是,如果您尝试修改其值,它将抛出一个SyntaxError。