ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python中assert函数的用法小结

2021-07-08 13:51:50  阅读:180  来源: 互联网

标签:GreydeMac mini greyzhang Python vim assert 小结 PNG


写程序的时候加上更加严谨的检查的习惯是我前不久刚刚学到的,之前纵然知道这很有用也很有必要,但是从来没有主动去尝试过。年前看了一本国外一个人写的C语言数据结构与算法讲义之后,觉得以后自己的软件中也有必要加上这种类似的检测,甚至说我常用的一些小脚本也有必要把这个加进去。

从15年下半年开始,我用的脚本语言Python居多,今天就大致总结一下Python中这种检测以及终止程序的方式。

Python中常用的一种方式是适用assert,最初在教程中看到有这个用法的时候只是浏览了一下就跳过了,感觉这个东西对我来说没用。后来学习MIT的6周公开课,简单的把这个功能学了一下,不过依然没有在我自己的代码中使用。后来大量使用已经是我前面提到的时间点以后了。

assert,通常在中文译本的教程活着书籍中翻译成断言。我觉得掌握这个常用的功能还得从文字具体的含义上来,不能够简单的记住这么一个名词或者是说法。断言,在中文的含义中看来是表达时分确定、十分肯定的含义。这样,这个函数后面参数对函数结果的影响也就明确了,只有当我十分确定的情况发生时才不会有错误。

编写如下代码测试:

  1 #!/usr/bin/python

  2 

  3 import os

  4 

  5 dir_info = os.listdir('./')

  6 assert('config.PNG' in dir_info)

  7 


代码测试,结果如下:

GreydeMac-mini:vim greyzhang$ vim assert_demo.py

GreydeMac-mini:vim greyzhang$ ls

assert_demo.py code_after.PNG code_before.PNG config.PNG

GreydeMac-mini:vim greyzhang$ python assert_demo.py 

GreydeMac-mini:vim greyzhang$ rm config.PNG 

GreydeMac-mini:vim greyzhang$ ls

assert_demo.py code_after.PNG code_before.PNG

GreydeMac-mini:vim greyzhang$ python assert_demo.py 

Traceback (most recent call last):

  File "assert_demo.py", line 6, in <module>

    assert('config.PNG' in dir_info)

AssertionError

GreydeMac-mini:vim greyzhang$ 


可以看出,当判断的文件存在时,使用断言说明文件存在程序运行没有任何错误。而删除断言中判断的存在文件之后,程序运行时候报错。实际上,断言的条件不成立时程序是直接报错并且终止执行。这不仅仅是保证程序运行可靠的一种方式,同时也算是一种程序问题定位的一种手段。因为程序运行停止时,错误信息会给出出现错误所在的代码行,而相应的条件都是程序员自己设定的,比较容易排查。

标签:GreydeMac,mini,greyzhang,Python,vim,assert,小结,PNG
来源: https://blog.51cto.com/greyzhang/3012530

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有