【发布时间】:2013-04-10 12:52:46
【问题描述】:
如何格式化符合 PEP8 的长断言语句?请忽略我的例子的人为性质。
def afunc(some_param_name):
assert isinstance(some_param_name, SomeClassName), 'some_param_name must be an instance of SomeClassName, silly goose!'
不能用括号括起来,因为这会改变 assert 语句的行为,因为它是关键字,而不是内置函数。
【问题讨论】:
-
assert应该仅用于调试目的,任何其他用途都是滥用assert功能。当使用-O选项运行python 时,所有asserts 也会被删除。 -
@Wessie 我不明白这有什么关系。
-
除了@Wessie,assert has many uses。它可以告知人类读者代码的功能、意图、限制和期望。它在健康、有风格的生产代码中占有一席之地。