python中with是非常强大的一个管理器,我个人的理解就是,我们可以通过在我们的类里面自定义enter(self)和exit(self,err_type,err_value,err_tb)这两个内置函数,然后通过with使用我们的这两个函数
enter(self):这个内置函数是运行这个对象之前调用的函数
exit(self,err_type,err_value,err_tb):这个内置函数是运行结束后调用的函数,上代码:

#coding=utf-8
class a():def __init__(self):print 'init'def __enter__(self):print int(reduce(lambda x,y:x*y,range(2,4)))print '_______________________________'def __exit__(self, exc_type, exc_value, exc_tb):#参数代表:错误类型,错误内容,错误栈(个人俗称)if exc_tb is None:  #如果错误栈为空,代表正常运行print 'free exit'else:print 'direct exit'
with a():print "11111111"
#输出:
#init
#6
#_______________________________
#11111111
#free exit
#可以看出输出1111111前调用了__enter__里面的函数,执行完之后退出时调用了__exit__函数

修改如下:

with a():print "11111111"raise TypeError
#输出
#init
#6
#_______________________________
#11111111
#direct exit
#Traceback (most recent call last):
#  File "with.py", line 15, in <module>
#    raise TypeError
#TypeError
#可以看到当有错误发生时,程序会输出TypeError,因为此时错误栈不为空

转载于:https://www.cnblogs.com/lq1024/p/7593646.html

python中with学习相关推荐

  1. python中choicebox_学习python的第四天笔记

    26.032 异常处理 常用的异常警告语句: AssertionError:断言语句失败 AttributeError:访问的未知的对象属性,#例如f.dcp(),.dcp()是不存在的 IndexE ...

  2. python中head_python学习笔记[headfirst]

    1内置函数 (BIF) python中有很多内置函数,再遇到一个需求时候,优先考虑内置函数.内置函数使用的时候不需要导入命名空间 range():生成一个从0到某个数的数字列表 2从文件读取数据 2. ...

  3. python中usecols_Python学习路线?

    10招!看骨灰级Pythoner如何玩转Python? [学会一时间爽,一直学一直爽!] pandas是基于numpy构建的,使数据分析工作变得更快更简单的高级数据结构和操作工具.本文为大家带来10个 ...

  4. python中待学习的内容

    目录 python类中的__init__: python类的继承与多态 PyQt 5信号与槽 Python 中的多线程 python类中的__init__: init()方法有两个方面的重大意义:1. ...

  5. Python中subprocess学习

    生命不息奋斗不止! subprocess的目的就是启动一个新的进程并且与之通信. subprocess模块中只定义了一个类: Popen.可以使用Popen来创建进程,并与进程进行复杂的交互.它的构造 ...

  6. python中isleap_Python学习笔记(十三)系统

    使用计算机时,经常需要列出一个文件夹或者目录的内容,创建和删除文件等操作,在 Python 程序中可以做到同样的事, 甚至能做更多的事.Python 在模块 os(操作系统,operating sys ...

  7. python中da_python学习 da4

    一.装饰器 ##装饰器: #定义:本质是函数,(装饰其他函数),就是为其他函数添加附加功能 #原则:1.不能修改被装饰的函数的源代码 # 2.不能修改被装饰的函数的调用方式 # 装饰器对被装饰函数来说 ...

  8. python 中cPickle学习二

    写入: import cPickle as p shoplistfile = 'data.data' shoplist = ['meili',['current_account',[100000,12 ...

  9. Python中的元编程(Meta-Programming)

    元编程:是编写出可以操作的代码的行为,即用代码来操作另一个代码. Python中的元编程:一种构建函数和类的行为,这些函数和类可以通过修改.包装现有代码或生成代码来进行操纵. Python中元学习的实 ...

最新文章

  1. 【POJ】1026.Cipher
  2. redux中reducer使用require.context使用技巧
  3. 不同浏览器前端调试查看返回页面的json数据
  4. springboot启动报错:org/springframework/expression/ParserContext
  5. 判断是否为二叉排序树的递归算法_左神直通BAT算法笔记(基础篇)
  6. Linux下redis的安装及配置.
  7. php psr 编码规范_PHP编码风格规范
  8. pythotn基础篇——条件分支与循环--3
  9. ibm服务器硬件故障检测工具,IBM服务器故障提示Memory/bttery problems were detected
  10. java安装了怎么打开_怎么安装打开java
  11. php怎么做性格测试题目,PHP和原生JS实现九型人格在线测试(144题)
  12. 如何将一个向量投影到一个平面上_线性代数总结 第三章 向量代数与几何计算(空间平面和直线)...
  13. 整数平方一定大于零吗?
  14. 3d智慧城市线上3d模型展示可视化平台
  15. 在做ADAU1452和ADAU1467的硬件设计时,输入输出通道的设计是怎么做的?(含原理图)
  16. B001-Atmega16-PORTA的定义-(ques=1)
  17. 【Jupyter Notebook的简单入门使用】
  18. Linux 文件搜索神器 find 实战详解,建议收藏
  19. wps里面函数怎么使用_WPS Excel经典函数:Vlookup怎么用
  20. 怎么查看支付宝id号

热门文章

  1. java 俄语 工作_工作俄语怎么说
  2. chrome 获取硬件信息_在tinycolinux上安装chrome
  3. ftp 工具_ftp,ftp工具哪个好用
  4. 【AI初识境】为了围剿SGD大家这些年想过的那十几招
  5. 【AI白身境】只会用Python?g++,CMake和Makefile了解一下​​​​​​​
  6. 【数据】短视频识别,都有那些行业标准?
  7. 【行业进展】国内自动驾驶发展的怎么样了?
  8. python基础-分支判断语句(4)
  9. xvfb-run: error: xauth command not found 解决方式
  10. spoj Longest Common Substring II