首页 > 其他分享 >【补充】断言

【补充】断言

时间:2023-07-31 12:36:20浏览次数:27  
标签:语句 断言 16 补充 data res 异常

【补充】断言

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

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

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

标签:语句,断言,16,补充,data,res,异常
From: https://www.cnblogs.com/dream-ze/p/17593139.html

相关文章

  • 【补充】模块与包的导入
    【一】模块一个Python文件,被别的Python文件导入使用这个Python文件称之为模块运行的这个Python文件称之为脚本文件模块是一个Python文件,它可以被其他Python文件导入并使用。模块通常包含一些相关的函数、类、变量和语句,以实现特定的功能。通过将代码组织到多个模块......
  • 【补充】on_delete的参数详解
    【补充】on_delete的参数详解models.CASCADE(级联删除):当删除与该字段关联的对象时,所有相关的对象将被级联删除。例如,如果一个出版社对象被删除了,与该出版社相关联的所有图书对象也会被删除。models.SET_DEFAULT:(设置为默认值):当删除与该字段关联的对象时,该字段的值将设置为字段......
  • 【补充】Django配置文件中的参数的作用
    Settings.py中的配置的作用【1】路径相关#pathlib:3.8+以后的模块,跟路径相关frompathlibimportPath#(1)项目根目录路径BASE_DIR=Path(__file__).resolve().parent.parent上述内容是在Django项目配置文件中使用pathlib模块设置项目根目录路径的操作。在Python......
  • 【补充】Django中的翻译函数
    【补充】Django中的翻译函数#只要做了国际化,会自动翻译成,当前国家的语言fromdjango.utils.translationimportgettext_lazyas_#使用方法_是一个函数,函数调用,可以将参数翻译成其他语言_('hello')django.utils.translation:这是Django框架提供的翻译模块,用于处理多......
  • 【补充】Python之一切皆对象
    【补充】Python之一切皆对象【1】一切皆对象Python中的一切都被视为对象。在Python中,每个值(包括数字、字符串、函数等)都是一个对象并且每个对象都属于特定的类(class)。类定义了对象的属性和行为。因此,可以说Python是一种面向对象的编程语言。对象是类的实例化结果......
  • 【补充】Python全栈开发可从事方向
    【补充】Python全栈开发可从事方向【1】Python后端开发(1)做网站(前后端):使用Python的Web框架(如Django、Flask等)进行后端开发,与前端页面进行交互,实现完整的网站功能。可以使用模板引擎(如Jinja2)生成动态HTML页面,也可以提供API接口供其他应用调用。(2)前端可以是app:使用Pytho......
  • 【补充】Python中的参数传递是值传递还是引用传递
    【补充】Python中的参数传递是值传递还是引用传递Python中的参数传递都是copy一份传递过去,由于一切皆对象,传过去的都是地址在Python中又区分可变类型和不可变类型可变类型在函数中修改会影响原始的值不可变类型,不会影响原始的值在Python中,参数传递是按对象引用传递的......
  • 【补充】页面展示之多重模态框
    【补充】页面展示之多重模态框【前端页面代码展示】{%blockinfo%}<divclass="container-fluid"><divclass="row"><h3>基本信息</h3><divclass="container"><divclass="rowjustify-c......
  • 【补充】富文本编辑器WangEditor
    【补充】富文本编辑器WangEditor使用Textarea·wangEditor用户文档【一】前端页面文本域<p>内容</p><br><div><textareaname="content"cols="40"rows="10"class="vLargeTextField"required=""id="......
  • Day08_for循环+print补充用法
    1.for循环和while循环取值: 2.for循环字典: 3.for循环字符串: 4.总结for循环和while循环的异同: 5.for循环控制循环次数:range() 6.for+break和for+else: 7.range(): 8.for+continue: 9.for循环嵌套: 10.print补充用法: ......