Python with语句
直接把参考的文章放上面吧 :这个更专业,可以直接看这个。
https://www.ibm.com/developerworks/cn/opensource/os-cn-pythonwith/
之前在有些教程中看到了如下的的代码:
1 with open("/tmp/foo.txt") as file: 2 data = file.read()
居然也可以这么写。具体是什么意思呢,with是怎么用的。
废话不多说,以下是我自己的理解:
首先with的作用:
使用with后不管with中的代码出现什么错误,都会进行对当前对象进行清理工作。
例如file的file.close()方法,无论with中出现任何错误,都会执行file.close()方法
其次with只有特定场合下才能使用。,这个特定场合只的是那些支持了上下文管理器的对象。
这些对象有:
1 file 2 decimal.Context 3 thread.LockType 4 threading.Lock 5 threading.RLock 6 threading.Condition 7 threading.Semaphore 8 threading.BoundedSemaphore
那么什么是上下文管理器:
这个管理器就是在对象内实现了两个方法:__enter__() 和__exit__()
__enter__()方法会在with的代码块执行之前执行,__exit__()会在代码块执行结束后执行。
__exit__()方法内会自带当前对象的清理方法。
with语句类似
try :
except:
finally:
的功能:但是with语句更简洁。而且更安全。代码量更少。
with 用法:
格式:
with context_expression [as target(s)]:with-body
例子:
with open(r'somefileName') as somefile:for line in somefile:print line# ...more code
with后面为一个表达式,表达式返回的是一个上下文管理器对象,我的理解就是表达式的返回结果。使用as 可以将这个结果赋值给某个变量。方便之后操作。
一个感觉更牛掰的例子:
nested 函数:
with nested(A(), B(), C()) as (X, Y, Z):# with-body code here
等同于:
with A() as X:with B() as Y:with C() as Z:# with-body code here
直接with后面的表达式就是个方法。并且把连着三个函数的方法直接赋值给不同变量。
上下文管理器可以自定义。也可以重写__enter__()和__exit__()方法。
转载于:https://www.cnblogs.com/zhangkaikai/p/6669750.html
Python with语句相关推荐
- 忘了python关键语句?这份备忘录拯救你的记忆
忘了Python关键语句?这份备忘录拯救你的记忆 今天要介绍的 Python 3 Cheat Sheet 由法国国家科学研究中心(CNRS)的法国机械工程与信息技术实验室(LIMSI)的工程师 Lau ...
- 包教包会!7段代码带你玩转Python条件语句(附代码)
来源:大数据 本文约5200字,建议阅读10分钟. 本文介绍了Python条件语句常用的7段代码. [ 导 读 ]条件语句通过一个或多个布尔表达式的执行结果(真值或假值)决定下一步的执行方向.所谓布尔 ...
- python入门语句_Python 快速入门笔记(5):语句
本系列随笔是本人的学习笔记,初学阶段难免会有理解不当之处,错误之处恳请指正.转载请注明出处: https://www.cnblogs.com/itwhite/p/12297769.html. 简介 p ...
- python“ with”语句的用途是什么?
今天,我第一次碰到了Python with语句. 我已经使用Python几个月了,甚至都不知道它的存在! 考虑到它的地位有些晦涩,我认为值得一问: Python with语句旨在用于什么? 你用它来做 ...
- python循环语句-Python-循环语句及循环控制语句
循环语句允许我们执行一个语句或语句组多次,下面是在大多数编程语言中的循环语句的一般形式: Python 提供了 for 循环和 while 循环(在 Python 中没有 do..while 循环): ...
- python基本语法语句-Python基本语句
一.Python 条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python程序语言指定任何非 ...
- python基本语法语句-python基本语句有哪些
Python是一种计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的开发.下面我们就为 ...
- python输入语句-python输入语句
广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. python条件语句目录:1. 分支语句(if...else...)2. ...
- python条件语句-Python3 条件控制
Python3 条件控制 Python 条件语句是通过一条或多条语句的执行结果(True 或者 False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: 代码执行过程: if 语句 ...
- python条件语句-Python 条件语句
Python 条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块.高佣联盟 www.cgewang.com 可以通过下图来简单了解条件语句的执行过 ...
最新文章
- D.Digits 思维dp 取log乘积变成加法
- Apache与Tomcat联系及区别(转)
- PyTorch随笔-1
- Tomcat、JDK 历史版本下载地址
- linux——客户端服务器文件传输
- MakersPlace将启动1美元特价的Beeple限量NFT抽奖活动
- 凑热闹,谈密码,Challenge-Response密码验证
- 大数据技术Hadoop介绍
- 自定义无穷大∞的显示内容
- 移动互联软件技术与实践demo
- 美信科技监控易:智慧高校一体化综合监控解决方案
- Y430P 重装Ubuntu16.04双系统以及装完系统要做的事
- 传奇服务器容易受到什么攻击,怎么防御攻击?
- 开发右脑,数字桩记忆扑克牌训练教程
- 杭州河坊街特色手机饰品——招财猫!
- 二维码网址的应用(多图)
- ubuntu 终端常用命令大全
- arcgis pro 2.5 安装教程
- 北京中考英语听说计算机考试时间,2019年北京中考英语听说考时间确定
- SV学习笔记—多态与类型转换