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

常州网站建设公司信息金华网站推广

常州网站建设公司信息,金华网站推广,山东省滕州市疫情最新消息今天,陕西城乡住房建设厅网站文章目录with语句自定义对象支持withcontextlib模块closing自动关闭suppress回避错误ExitStack清理Python 中的 with 语句用于清理工作,封装了 try…except…finally编码范式,提高了易用性。with语句 with语句有助于简化资源管理: # 离开作…

文章目录

    • with语句
      • 自定义对象支持with
    • contextlib模块
      • closing自动关闭
      • suppress回避错误
      • ExitStack清理

Python 中的 with 语句用于清理工作,封装了 try…except…finally编码范式,提高了易用性。

with语句

with语句有助于简化资源管理:

# 离开作用域时,自动关闭文件
with open('hello.txt', 'w') as f:f.write('hello, world!')

自定义对象支持with

类只要实现上下文管理器,就可获得with支持:

  • 类中实现__enter__和__exit__方法;
  • 进入with语句上下文时,__enter__被调用以获取资源;
  • 离开with上下文时,__exit__被调用以释放资源;
class ManagedFile:def __init__(self, name):self.name = namedef __enter__(self):self.file = open(self.name, 'w')return self.filedef __exit__(self, exc_type, exc_val, exc_tb):if self.file:self.file.close()

contextlib模块

使用contextlib.contextmanager装饰器能够使函数(生成器)自动支持with语句:

  • 函数要为生成器,即有yield语句;
  • 将yield语句前代码当做__enter__执行;
  • 将yield语句之后代码当做__exit__执行;
  • yield返回值赋值给as后的变量;
from contextlib import contextmanager@contextmanager
def managed_file(name):try:print("open file:", name)f = open(name, 'w')yield ffinally:print("close file")f.close()with managed_file(r'D:\temp\hello.txt') as f:print("write file")f.write('hello world!')        

closing自动关闭

closing装饰器封装有close的类,在离开with作用域时自动调用close方法:

from contextlib import closing
from urllib.request import urlopenwith closing(urlopen("http://www.baidu.com")) as page:# get the page

suppress回避错误

suppress(*exceptions)可以禁止任意数目的异常:

# 文件不存在,也不会抛出异常
with suppress(FileNotFoundError):os.remove('somefile.tmp')

ExitStack清理

ExitStack可组合多个清理器,通过向栈中添加清理回调(enter_context),在离开with时统一清理:

# 在离开时,会统一关闭打开的文件(即使部分文件在打开时抛出异常)
with ExitStack() as stack:files = [stack.enter_context(open(fname)) for fname in filenames]
http://www.shuangfujiaoyu.com/news/19235.html

相关文章:

  • tp框架做餐饮网站如何优化搜索关键词
  • 星沙网站建设游戏推广渠道
  • 企业做网站哪家公司好优化大师客服
  • 无锡市政设施建设工程有限公司windows优化大师要钱
  • 网络公司网站开发案例新乡seo公司
  • 网络推广就找南昌莫非传媒个人seo外包
  • 中国建设银行东莞市网站bt蚂蚁磁力搜索天堂
  • 学校网站建设合同济南seo网站排名优化工具
  • 驻马店做网站建设的公司2024最火的十大新闻
  • 高端外贸网站制作网站排名软件优化
  • 厦门 网站建设 公司校园推广
  • thinkphp 网站模版软文发布软件
  • 做旅游网站的目的与意义关键词是怎么排名的
  • 局域网网站制作教程新的网络推广方式
  • 网站推广方式措施hao123网址导航
  • 专业网站建设推广sem管理工具
  • 网站设计 卡片式设计长沙百家号seo
  • 诚信网站体系建设工作总结如何建立网站服务器
  • wordpress编辑文章更新失败班级优化大师的利和弊
  • 湖南省郴州市嘉禾县网站seo批量查询工具
  • 懒人模板网站网络推广app是违法的吗
  • 宝鸡门户网站开发下载互联网营销渠道有哪些
  • 凡科建站源码深圳开发公司网站建设
  • 重庆网站制作外包公司南宁做网站公司
  • 网站建设 徐州策划营销推广方案
  • 一站式做网站技术简述什么是百度竞价排名
  • 做平面素材比较好的网站媒体发稿平台
  • 中企动力做网站多久能好seo 培训教程
  • 婚纱动态网站模板谷歌seo建站
  • 云集网站哪个公司做的google adsense