如何使用python实现构建变体?

时间:2015-12-10 18:43:47

标签: python

在C / C ++应用程序中,我通过定义高级宏

开发了轻微的构建变体
#define PRODUCTION_BUILD
#define DEBUG_BUILD
...

我是否可以使用某种等价物来有条件地包含更大的python应用程序的组件?

1 个答案:

答案 0 :(得分:2)

Python没有像C / C ++这样的预处理器。它也没有真正的常数。按照惯例,您可以定义"常数"通过在

等完整大写字母中键入它们
DEBUG_BUILD = True

但除了约定之外的任何内容都不会阻止它被修改。如果您只需要两个变体(调试/生产),则可以使用

__debug__

if __debug__:
  do something
else:
  do something else

此变量将根据运行python脚本时的optimize标志或PYTHONOPTIMIZE环境变量进行设置。

使用__debug__的好处是,如果你试图修改它的值,它会抛出一个SyntaxError。