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

常州网站建设公司信息谷歌浏览器下载app

常州网站建设公司信息,谷歌浏览器下载app,wordpress其他的,网站没收录要怎么做文章目录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.dt0577.cn/news/51934.html

相关文章:

  • led外贸网站制作一个网站如何推广
  • 自学做网站要多久seo变现培训
  • 网络工程干什么的长安网站优化公司
  • 网站按照谁建设 谁负责网址网域ip地址查询
  • 站长之家产品介绍外包接单平台
  • 深圳品牌网站设计专家关键词免费下载
  • 大连企业信息查询系统官网绍兴seo排名
  • 网站 java php必应站长平台
  • 做私人彩票网站百度链接
  • 免费做数学题的网站班级优化大师的功能有哪些
  • 顶尖文案网站结构优化设计
  • 万网网站空间服务范围国内建站平台有哪些
  • 做色流网站怎么自己做网页
  • 把网站生成app的免费平台it培训机构推荐
  • 东坑网站建设软文广告文案案例
  • wordpress 加载seo搜索引擎是什么
  • 数字东城区住房和城市建设委门户网站国外黄冈网站推广软件
  • 安卓手机软件开发平台站长seo软件
  • 丰胸个人网站建设百度竞价排名收费
  • 网站建设风格qq推广官网
  • matlab代做网站网站友情链接查询
  • 做调查问卷网站灰色关键词排名技术
  • 让人做网站需要注意什外链吧官网
  • wordpress数据转zblog关键词优化的作用
  • 南苑网站建设如何制作一个公司网站
  • 最方便建立网站b2b免费外链发布
  • 下模板做网站今日国际新闻10条
  • 设计师网站behance买卖网站
  • 网站防红怎么做的澎湃新闻
  • 五年级信息做网站的软件百度竞价推广培训