contextlib】的更多相关文章

参考页面: http://docs.python.org/2/library/contextlib.html contextlib是为了配合with语句来使用的.使用起来更加简洁.本来想写一下,这位同仁已经写得非常棒了.给个链接,就不自己费劲写了: http://www.cnblogs.com/coser/archive/2013/01/28/2880328.html 感谢! RF的入口程序run.py继承了util/Application类(application.py)中.里面的一个核心函数…
1.with操作符 在python中读写文件,可能需要这样的代码 try-finally读写文件 file_text = None try: file_text = open('./text', 'r') print file_text.read() except IOError, ex: traceback.print_exc() finally: if file_text: file_text.close() 同样,在python中使用线程锁,可能需要这样的代码 try-finally线程锁…
上下文管理器 一直对python中的上下文管理比较迷惑,趁着今天研究SQLAlchemy顺便看了一下,感觉稍微清楚了一点.http://www.cnblogs.com/chenny7/p/4213447.html参考了这篇文章. 所谓上下文,在函数式编程这个具体的场景中来说,可以理解为和闭包有些类似的一种东西.比如在闭包和装饰器那篇文章中我提到过利用自定义一个装饰器来得到一个加强版的函数.为什么它能够得到加强,就是因为在执行这个函数时,解释器会自动执行一些装饰器中定义的操作.而回到上下文这个话题…
http://blog.csdn.net/pipisorry/article/details/50444736 with语句 with语句是从 Python 2.5 开始引入的一种与异常处理相关的功能(2.5 版本中要通过 from __future__ import with_statement 导入后才可以使用),从 2.6 版本开始缺省可用(参考 What's new in Python 2.6? 中 with 语句相关部分介绍).with 语句适用于对资源进行访问的场合,确保不管使用过程…
with/as 使用open打开过文件的对with/as都已经非常熟悉,其实with/as是对try/finally的一种替代方案. 当某个对象支持一种称为"环境管理协议"的协议时,就会通过环境管理器来自动执行某些善后清理工作,就像finally一样:不管中途是否发生异常,最终都会执行某些清理操作. 用法: with expression [as var]: with_block_code 当expression返回的对象是支持环境管理协议的时候,就可以使用with.as var是可选…
cobtextlib模块用于简化上下文管理器,其内置装饰漆@contextmanager,我们通过编写一个被contextmanager装饰的generator来简化上下文管理. from contextlib import contextmanager @contextmanager def aa(): print ('begin') yield 1 print ('end') with aa() as q: print (q) ''' yiled之前的语句和yied相当于上下文管理器的ent…
#  2  collections 是Python内建的一个集合模块,提供了许多有用的集合类. # 2.1 namedtuple #tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成: p=(1,2) #但是看到(1,2),很难看出这个tuple是用来表示一个坐标的.定义一个class又小题大做了,这时,namedtuple就派上用场了 from collections import namedtuple Point=namedtuple('Point',['x','y']) p=P…
在Python中,读写文件这样的资源要特别注意,必须在使用完毕后正确关闭它们.正确关闭文件资源的一个方法是使用try...finally: try: f = open('/path/to/file', 'r') f.read() finally: if f: f.close() 写try...finally非常繁琐.Python的with语句允许我们非常方便地使用资源,而不必担心资源没有关闭,所以上面的代码可以简化为: with open('/path/to/file', 'r') as f:…
原文:https://pythoncaff.com/docs/pymotw/contextlib-context-manager-tool/95 这是一篇社区协同翻译的文章,你可以点击右边区块信息里的『改进』按钮向译者提交改进建议. 本节目标: 创建和使用基于上下文管理器的工具 contextlib 模块包含了可使用 with 语句的上下文管理工具,一起了解一下. 上下文管理器 API## 上下文管理器 就是一个给包含在其中代码块提供资源的对象,在进入块时创建一些资源,在退出块后清理掉.举个例子…
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块contextlib,为加强with语句而存在 #特别注意:python3和python2关于该模块的功能用法有很大的不同. import contextlib #目前了解即可,暂不作深入研究…