是'优化'.pyo文件不安全?

时间:2013-06-07 04:42:29

标签: python

我惊恐地发现python -O剥夺了断言陈述。我在任何地方和任何地方使用断言,我认为断言(如一般的例外)作为一种流控制形式。

Python用户:python -O.pyo个文件是否安全?依赖断言是不安全的吗?

2 个答案:

答案 0 :(得分:5)

依靠断言并不是一个好主意。将断言用作流控制并不是一个好主意。原因正如您所描述的那样:它们可以被禁用。 documentation只是简单地说:

  

断言语句是将调试断言插入程序

的便捷方式

断言用于调试,而不是在生产代码中依赖。

答案 1 :(得分:2)

断言用于捕获错误,而不是用于流量控制。因此,对于优化器来说它是完全有效的,因为在代码发布时,应该删除这些错误。

如果您将它们用作通用异常提升程序,我建议您错误地使用它们。

有一个很好的页面在Python Wiki上讨论这个问题,我特别指出了最后一点:

  

断言只应用于程序自检的一个重要原因是断言可以在编译时禁用。

     

如果使用-O选项启动Python,则断言将被删除而不进行评估。因此,如果代码严重使用断言,但性能至关重要,那么就有一个系统可以在发布版本中关闭它们。