• 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)
    

      运行结果:

  • 相关阅读:
    [Windows]使用nmake命令
    正则表达式
    随机读取数据库
    常用正规表达式应用(收集于网络)
    javascript中使用正则表达式(替换应用)
    摘自网络"浅析UpdatePanel的partial render原理"
    css样式制作相册例子(摘自网络)
    javascript正则表达式常规用法(摘自网络)
    asp.net下的正规表达式替换
    摘自网络创业失败的10个教训(上)
  • 原文地址:https://www.cnblogs.com/lirongyang/p/9683426.html
Copyright © 2020-2023  润新知