with 关键字的意思就是一种try finally的快捷写法

看下面的代码和注释就容易理解

with WithWrapper() as ww:print ww # 应该打印 1. 它是WithWrapper().__enter__函数的返回值    print "with body"raise NameError("Error Raised") # 这里如果有异常, WithWrapper().__exit__函数的后三个参数就根据这个异常被赋值。否则三个参数的值都是None
class WithWrapper:def __enter__(self):print "with语句执行后,__enter__先执行"return 1 # 返回的值被赋给with语句中as后的变量,你想返回什么就返回什么   def __exit__(self, exc_type, exc_value, traceback):print "with语句执行后,__exit__一定会被执行,即使在with body里面抛出了异常"return True # 返回True表示with body抛出的异常本地处理了,异常不会被propagated。否则异常会被with语句后面的代码捕捉到。

可参考

http://pyref.infogami.com/__exit__

转载于:https://www.cnblogs.com/dbbs/archive/2012/03/01/2374923.html

Python “with” keyword相关推荐

  1. python:keyword --- 检验Python关键字

    python:keyword --- 检验Python关键字 此模块使 Python 程序可以确定某个字符串是否为 关键字 或 软关键字. keyword.iskeyword(s) 如果 s 是一个 ...

  2. Python 关键字(keyword) 参数

    函数是仅在调用时运行的代码块.可以将数据(称为参数)传递给函数.函数可以返回数据.函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.已经知道 ...

  3. 通过import keyword查看python中定义的关键字

    输入命令 keyword.kwlist 可以查看这个keyword.py的源代码,挺短的但借鉴意义挺强的,也算是学习规范书写python的一个方式 #! /usr/bin/env python3&qu ...

  4. python 做山水画_python -- yield keyword

    python -- yield keyword 你泪如雨花洒满了纸上的天下.爱恨如写意山水画 参考 这篇笔记主要是翻译了第一个链接的内容 想要了解 yield 的原理,首先得要了解生成器,而生成器来自 ...

  5. boa支持https_Boa: 在 Node.js 中使用 Python

    Hello,大家好,有一段时间不见了. 这次主要给大家带来一个好东西,它的主要用途就是能让大家在 Node.js 中使用 Python 的接口和函数.可能你看到这里会好奇,会疑惑,会不解,我 Node ...

  6. python中一共有多少个关键字-Python中关键字有多少个?

    Python中关键词有多少个?Python中关键词目前有31个,可以利用Python的内置的keyword模块进行输出查看. keyword模块Help on module keyword: NAME ...

  7. python中一共有多少个关键字-Python中有几个关键字

    Python中关键词有多少个?Python中关键词目前有31个,可以利用Python的内置的keyword模块进行输出查看. keyword模块 Help on module keyword: NAM ...

  8. Python 2.7 Tutorial —— 流程控制

    .. _tut-morecontrol: ****************************************** More Control Flow Tools 深入流程控制 ***** ...

  9. python关键字和保留字_或带有Python示例的关键字

    python关键字和保留字 Python或关键字 (Python or keyword) or is a keyword (case-sensitive) in python, it is a log ...

最新文章

  1. 《企业软件交付:敏捷与高效管理精要》——1.6 结论
  2. 51CTO下载IT类/程序类/开发类资源汇总
  3. django-oscar页面出现Error 10002 - Security header is not valid
  4. c语言程序后退_c语言中向后退一格是啥符号?
  5. abp的权限与导航菜单的关系
  6. Sitemesh3的使用及配置
  7. c语言bfs程序讲解,面试算法--二叉树DFS/BFS实现(C语言)
  8. C#中的多文档的使用
  9. android 长按 秒事件_原来手机长按2秒,能开启5个实用功能,一键提取图片上的文字...
  10. 北京的201个蓝天之清晨随拍
  11. 拓端tecdat|R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归
  12. 芯烨 Xprinter XP-DT108A 打印机驱动
  13. linux编译生成动态库、静态库,以及使用
  14. 服务如何获取当前登录的windows用户名
  15. mysql sniffer master_MySQL Sniffer
  16. 几个重要的电子元器件网站
  17. 在SDLC中使用静态代码分析的最佳实践
  18. 项目管理——项目进度的确定
  19. 关系模式,关系,关系数据库
  20. 华为2017实习生面试

热门文章

  1. 实现小数据量和海量数据的通用分页显示存储过程
  2. C#实现文本文件合并
  3. cv::inRange的作用,注意它的区间是闭区间,而不是开区间...
  4. 三通道阈值化最好不要使用img_h<0>0.15img_v>0.25的写法~
  5. 利用OpenCV的compareHist函数作直方图的相似度对比的源程序
  6. 详解让人闹心的C++语句 cout<<“Hello“<<endl;
  7. C++ vector的内部实现原理及基本用法
  8. linux I/O--I/O多路复用--select总结(三)
  9. OVS DPDK--网桥配置(四)
  10. leetcode算法题--最长湍流子数组