【补充】断言
assert hasattr(self, 'initial_data'), (
'Cannot call `.is_valid()` as no `data=` keyword argument was '
'passed when instantiating the serializer instance.'
)
在断言代码中,
hasattr(self, 'initial_data')
是用来检查实例对象self
中是否存在名为initial_data
的属性。当该属性不存在时,抛出一个异常,内容为
"Cannot call `.is_valid()` as no `data=` keyword argument was passed when instantiating the serializer instance."。
这个异常表明在创建序列化器实例时没有传递
data=
关键字参数。
-
断定某个东西是我认为的,如果不是就抛异常
-
等同于if判断+抛异常
def add(a, b):
return a + b
res = add(8, 9)
# assert res == 16, Exception('不等于16')
if not res==16:
raise Exception('不等于16')
print('随便')
【详解】
-
断言(assertion)是一种编程时使用的语句,用于在程序运行过程中检查特定条件是否满足。
- 它可以帮助程序员在开发期间捕获和诊断错误,提高代码的可靠性和调试效率。
-
断言的作用类似于条件判断加异常抛出的组合。
- 当一个断言语句的条件判断为假(False)时,会引发一个 AssertionError 异常,以通知程序出现了不可预期的情况。
- 一般来说,如果没有发生异常,断言就通过了,说明条件为真(True)。
-
断言可以用于验证程序的前置条件、后置条件、循环不变式等,并帮助程序员捕获潜在问题。
- 但需要注意的是,在生产环境中,断言语句通常会被编译器或解释器忽略或禁用,因为它们的主要目的是在开发和调试阶段使用。
- 因此,在编写断言时,应确保不会对程序的性能或功能产生负面影响。
-
总结起来
- 断言是一种用于在代码中检查特定条件是否满足的语句。
- 它可以帮助程序员在开发期间捕获错误,并提供详细的异常信息。
- 但在生产环境中,应谨慎使用断言并确保其不会对程序的性能和功能产生负面影响。