zoukankan      html  css  js  c++  java
  • Python学习笔记调试之断言

    随笔记录方便自己和同路人查阅。

    #------------------------------------------------我是可耻的分割线-------------------------------------------

      “断言”是一个心智正常的检查,确保代码没有做什么明显错误的事情。这些心智正常的检查有assert语句执行。如果检查失败,就会抛出异常。

      assert语句包含以下部分:

      (1)assert关键字

      (2)条件(求值为Truehuo False的表达式)

      (3)逗号

      (4)当条件为False时显示的字符串

    #------------------------------------------------我是可耻的分割线-------------------------------------------

      1、示例代码:

    #! python 3
    # -*- coding:utf-8 -*-
    # Autor: Li Rong Yang
    podBayDoorStatus = "open"
    assert podBayDoorStatus == "open",'The pod bay doors need to be"open".'
    podBayDoorStatus = "Im sorry, Dave. I'm afraid I can't do that."
    assert  podBayDoorStatus == "open",'The pod bay doors need to be"open".'
    

      运行结果:

      这里将 podBayDoorStatus 设置为 'open',所以从此以后,我们充分期望这个变量的值是 'open'。在使用这个变量的程序中,基于这个值是 'open' 的假定,我们可能写下了大量的代码,即这些代码依赖于它是 'open',

    才能按照期望工作。所以添加了一个断言,确保假定 podBayDoorStatus 是 'open' 是对的。这里,我们加入了信息 'Thepod bay doors need to be "open".',这样如果断言失败,就很容易看到哪里出了错。

      稍后,假如我们犯了一个明显的错误,把另外的值赋给 podBayDoorStatus,但在很多行代码中,我们并没有意识到这一点。这个断言会抓住这个错误,清楚地告诉我们出了什么错。

      在日常英语中,assert 语句是说:“我断言这个条件为真,如果不为真,程序中什么地方就有一个缺陷。”不像异常,代码不应该用 try 和 except 处理 assert 语句。如果assert 失败,程序就应该崩溃。通过这样的快速失败,

    产生缺陷和你第一次注意到该缺陷之间的时间就缩短了。这将减少为了寻找导致该缺陷的代码,而需要检查的代码量。

      断言针对的是程序员的错误,而不是用户的错误。对于那些可以恢复的错误(诸如文件没有找到,或用户输入了无效的数据),请抛出异常,而不是用assert 语句检测它。

      2、写一条 assert 语句,如果变量 spam 是一个小于 10 的整数,就触发188 Python 编程快速上手——让繁琐工作自动化AssertionError

    #! python 3
    # -*- coding:utf-8 -*-
    # Autor: Li Rong Yang
    def spam(n):
        #number赋值
        number =10
        #断言传入的参数要小于等于10
        assert number >= n, 'This is greater than 10'
    
    spam(11)
    

      运行结果:

  • 相关阅读:
    C#中 @ 的用法
    ASP.NET页面间传值
    ASP.NET中常用的文件上传下载方法
    把图片转换为字符
    把图片转换为字符
    JavaScript 时间延迟
    Using WSDLs in UCM 11g like you did in 10g
    The Definitive Guide to Stellent Content Server Development
    解决RedHat AS5 RPM安装包依赖问题
    在64位Windows 7上安装Oracle UCM 10gR3
  • 原文地址:https://www.cnblogs.com/lirongyang/p/9683426.html
Copyright © 2011-2022 走看看