关于剥离断言语句:这是C语言世界中的标准选项,许多人认为ASSERT定义的部分原因在于它不在生产代码中运行。去除它们是否有所不同,取决于有多少个断言而不是取决于这些断言完成多少工作:
def foo(x):
assert x in huge_global_computation_to_check_all_possible_x_values()
# ok, go ahead and use x...
当然,大多数断言不是那样,但是重要的是要记住您可以做类似的事情。
至于剥离文档字符串,从更简单的时间来看似乎确实是一个古朴的保留,尽管我猜想在内存受限的环境中它可能会有所作为。