python with关键字_python中用with关键字来实现上下文管理器.
例子
with open(r'somefileName') as somefile:
for line in somefile:
print line
with 语句的语法
with [as ]:
什么语句可以作为, 变量是在哪里定义的呢?
应该返回一个上下文管理器,所谓上下文管理器就是任何一个实现了__enter__(self),和__exit__(self, *unused)方法的class的实例.
在__enter__(self)对象中返回的内容会被赋值给变量
直接用类进行构造的构造函数
class PypixContextManagerDemo:
def __enter__(self):
print 'Entering the block'
def __exit__(self, *unused):
print 'Exiting the block'
with PypixContextManagerDemo():
print 'In the block'
也可以用工厂方法建立
以MySQLdb为例,通常是调用MySQLdb.Connect方法建立的Connection的实例的.而在MySQLdb中Connect方法是这样实现的.
def Connect(*args, **kwargs):
"""Factory function for connections.Connection."""
from MySQLdb.connections import Connection
return Connection(*args, **kwargs)
而在Connection类中实现了__enter__(self),和__exit__(self, *unused)方法
class Connection(_mysql.connection):
.....................
def __enter__(self):
if self.get_autocommit():
self.query("BEGIN")
return self.cursor()
def __exit__(self, exc, value, tb):
if exc:
self.rollback()
else:
self.commit()
注意__enter__方法直接返回了cursor对象,因此as后跟的就是一个cursor对象
with MySQLdb.connect(kwargs=Mysqldb_kwargs) as ins_cursor:
ins_cursor.execute('select * from user')
python with关键字_python中用with关键字来实现上下文管理器.相关推荐
- python教程:上下文管理器详细教程
我想你对 Python 中的with语句一定不陌生,尤其是在文件的读写操作中,不过我想,大部分人可能习惯了它的使用,却并不知道隐藏在其背后的"秘密". 那么,究竟with语句要怎么 ...
- python用于声明类的关键字_python的with关键字
前言 with表达式其实是try-finally的简写形式.但是又不是全相同. 格式 """ 格式 with context [as var]: pass "& ...
- python上下文管理关键字_详解 Python 中的 with 与 上下文管理器
with 这个关键字,对于每一学习Python的人,都不会陌生. 操作文本对象的时候,几乎所有的人都会让我们要用 with open ,这就是一个上下文管理的例子.你一定已经相当熟悉了,我就不再废话了 ...
- python with关键字_完全理解Python关键字with与上下文管理器
如果你有阅读源码的习惯,可能会看到一些优秀的代码经常出现带有 "with" 关键字的语句,它通常用在什么场景呢?今天就来说说 with 和 上下文管理器. 对于系统资源如文件.数据 ...
- python上下文管理关键字_理解 Python 的上下文管理器
任何 Python 教程,必然会讲解如何打开一个文件.而任何提到打开文件的地方,都必然会推荐用 with 来操作文件的读写.比如说这里有一篇非常优秀的教程,文中提到在 Python 中,文件读写是通过 ...
- python的上下文管理用哪个关键字_正确理解python中的关键字“with”与上下文管理器...
正确理解python中的关键字"with"与上下文管理器 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: 正确理解python中的关键字&quo ...
- python 多态 锁_python 上下文管理器,多态,数据锁定与自省,
python 上下文管理器,多态,数据锁定与自省, 前文课题 通过装饰器来实现单例模式 通过类实现一个通用装饰器,皆可以装饰函数也可装饰类,即可有参也可无参 描述 new str repr call ...
- python语言使用什么语句实现上下文管理协议_Python 技巧探究:上下文管理器和with语句...
一:前言 Python 里面的 with 语句是被认为是晦涩难懂的特征之一,但是当你窥视它的内部你就会发现这里面并没有什么魔法.事实上它可以帮助我们写一些整洁和可读性高的代码. 那么 with 语句适 ...
- python语言使用什么语句实现上下文管理协议_Python with语句上下文管理器两种实现方法分析...
本文实例讲述了Python with语句上下文管理器.分享给大家供大家参考,具体如下: 在编程中会经常碰到这种情况:有一个特殊的语句块,在执行这个语句块之前需要先执行一些准备动作:当语句块执行完成后, ...
最新文章
- svn官方备份hot-backup.py强烈推荐
- Java List部分截取,获得指定长度子集合
- 【直播预告 | 阿里云 CDP 公开课】11月25日下午14点准时开讲
- CSS3+JS切割轮播图
- EPSON 机器人多任务下的互锁处理
- 超出了GC开销限制– Java堆分析
- 阿里资深技术专家的10年感悟
- ocm认证年薪多少_从复读才考上三本,到华为201万年薪的天才少年,他经历了什么?...
- 网上偶看一文,有感。特贴在下面。
- 数据库优化之MySQL
- 88se9230 linux raid,Gen10磁盘控制器Marvell 88SE9230阵列RAID设置方法教程图文
- 为驾驶安全护航,基于目标检测模型实现驾驶疲劳检测
- python画玫瑰曲线_「风向玫瑰图」python绘制风向玫瑰图和污染物玫瑰图 - seo实验室...
- 个推华为推送、小米推送、苹果推送及角标
- CommonAPI 使用说明文档
- PS入门(1-7) HSB色彩模式
- 图片扩展名如何修改,转换图片格式轻松搞定
- react-native 报错Cannot add a child that doesn't have a YogaNode to a parent without a measur
- java实现word、pdf、excel文件下载功能
- 恶意url_预测URL的恶意