【补充】断言

【补充】断言

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)。
  • 断言可以用于验证程序的前置条件、后置条件、循环不变式等,并帮助程序员捕获潜在问题。

    • 但需要注意的是,在生产环境中,断言语句通常会被编译器或解释器忽略或禁用,因为它们的主要目的是在开发和调试阶段使用。
    • 因此,在编写断言时,应确保不会对程序的性能或功能产生负面影响。
  • 总结起来

    • 断言是一种用于在代码中检查特定条件是否满足的语句。
    • 它可以帮助程序员在开发期间捕获错误,并提供详细的异常信息。
    • 但在生产环境中,应谨慎使用断言并确保其不会对程序的性能和功能产生负面影响。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值