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