擅长:python、mysql、java
<p>python和其他语言(特别是C)中的<code>assert</code>的一个奇妙之处在于,您可以通过添加正确的<code>#define</code>(在我使用过的任何编译器的命令行上可选地)或优化标志(<code>-O</code>)来删除它们来优化代码。如果<code>assert</code>变成了一个函数,那么这个特性将不可能添加到python中,因为直到运行时才知道您是否拥有内置的<code>assert</code>函数或同名的用户定义函数。在</p>
<hr/>
<p>还要注意,在python中,函数调用相当昂贵。用代码<code>if __debug__: ...</code>替换inline可能比执行函数调用要高效得多,如果在性能关键的例程中放入<code>assert</code>语句,这可能会很有意义。在</p>