当前位置: 首页 > news >正文

淮安建设局网站上海建筑公司排名

淮安建设局网站,上海建筑公司排名,二维码制作网站链接,中信云做网站声明:本内容非盈利性质,也不支持任何组织或个人将其用作盈利用途。本内容来源于参考书或网站,会尽量附上原文链接,并鼓励大家看原文。侵删。 5.5 上下文管理协议(with语句)(参考链接&#xff1…

声明:本内容非盈利性质,也不支持任何组织或个人将其用作盈利用途。本内容来源于参考书或网站,会尽量附上原文链接,并鼓励大家看原文。侵删。

5.5 上下文管理协议(with语句)(参考链接:https://blog.csdn.net/Ego_Bai/article/details/80873242)

5.5.1 with语句及其使用

有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。

其中一个很好的例子是文件处理,你需要获取一个文件句柄,从文件中读取数据,然后关闭文件句柄。
如果不用with语句,代码如下:

file = open("/tmp/foo.txt")
data = file.read()
file.close()

这里有两个问题:一是,可能忘记关闭文件句柄;二是,文件读取数据发生异常,没有进行任何处理。下面是处理异常的加强版本:

file = open("/tmp/foo.txt")
try:data = file.read()
finally:file.close()

这段代码运行良好,但是太冗长。这时候with便体现出了优势:不但有更优雅的语法,还可以很好的处理上下文环境产生的异常。下面是with版本的代码:

with open("/tmp/foo.txt") as file:data = file.read()

在操作多线程时,也有很多相关对象是支持上下文管理协议的。如下:

with some_lock:# do something...# 上面的代码相当于
some_lock.acquire()
try:# do something...
finally:some_lock.release()

由此可见,with用来操作支持上下文管理协议的对象。

5.5.2 with是如何工作的(如何支持上下文管理协议)

一个对象要想支持上下文件管理协议,必须满足要求:对象必须有一个enter()方法,一个exit()方法。因为with语句的执行过程是:紧跟with后面的语句被求值后,返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as后面的变量。当with后面的代码块全部被执行完之后,将调用前面返回对象的__exit()__方法。

我们可以自定义一个对象并使用with。如下:

class Sample:def __enter__(self):print("in __enter__")return "Foo"def __exit__(self, exc_type, exc_val, exc_tb):  # exc_type:错误的类型;exc_val:错误类型对应的值;exc_tb:代码中错误发生的位置 print("in __exit__")def get_sample():return Sample()with get_sample() as sample:print("Sample: " ,sample)

with语句是很常用的,因为有关文件流、进程、线程及协程的操作,大部分都是支持上下文件管理协议的,为了简洁语法我们可以多使用with。

http://www.yayakq.cn/news/331142/

相关文章:

  • 网站建设知识产权问题python语言基础
  • 网站后台备份丢失网站ui设计公司
  • 合肥公司网站建设多少费用陕西荣天建设网站
  • 长沙哪里有创建网站的公司wordpress分类搜索
  • 公司网站建设内容深圳口碑好的vi设计公司
  • 如何做网站直播入口广告网站大全
  • 电商网站 建设步骤出名的设计网站
  • 技术支持保定网站建设 定兴德州市经济开发区建设局网站
  • 做招投标网站办公室设计公司
  • 灵璧有做公司网站的吗建筑网站在哪里找
  • 网站盒子怎么做公司网络组建方案模板
  • 企业电子网站的建设案例个人网站备案不能盈利
  • 东莞网站建设方案托管头像logo图片在线制作免费
  • 石家庄制作网站软件做网站时图片的分辨率是多少
  • 计算机网站建设文献综述指定关键词排名优化
  • 有没有找项目的网站铜仁公司做网站
  • 空调网站模板瑞安网站
  • 网站上实用的h5特效推广链接点击器app
  • 一级a做爰片免费网站迅雷下载wordpress页面与文章不同的小工具
  • 如何提升网站速度绵阳做最好优化网站的
  • 新颖网站页面设计东莞购物网站建设
  • 电子政务公开 网站建设全球域名注册平台
  • ppt模板免费下载网站有哪些html基础标签
  • 做企业网站用什么cms网站建设违法行为
  • 专业网站开发企业广州总承包建筑集团有限公司
  • 哈尔滨网站设计联系方式亚马逊网站联盟
  • 音乐主题的网站设计证件制作
  • 哪些网站是用twcms做的开发软件属于什么行业
  • 河北省建设厅网站6网站制作 代码
  • 广西安策企业管理咨询有限公司优化教程网官网