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

常州网站建设公司信息谷歌推广代理公司

常州网站建设公司信息,谷歌推广代理公司,企多维企业查询官网,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.dinnco.com/news/11448.html

相关文章:

  • 域名备案要多久揭阳百度seo公司
  • 那个网站的机票做便宜百度资源共享
  • 微信网站开发高级seo是什么职位
  • 怎么在国外的搜索网站做推广厦门关键词seo排名网站
  • 帮人做微信是哪个网站关键词排名霸屏代做
  • 外贸soho先做网站天津百度整站优化服务
  • 谷歌网站质量指南网站品牌推广公司
  • 网站改中文营销方法
  • wordpress首页页面设置深圳外贸seo
  • 江苏网站备案需要多久百度推广点击收费标准
  • 佛山做网站哪家好合肥网站制作公司
  • 网站开发费属于无形资产那部分网址怎么弄
  • 做网站优化推广福建省人民政府门户网站
  • 网站开发与维护的工资seo搜索引擎优化策略
  • 网站开发平台的定义微商怎么引流被别人加
  • 企业咨询管理是做什么的郑州百度seo排名公司
  • 深圳做网站知名排行大连今日新闻头条
  • 备用网站怎么做天津推广的平台
  • 宁乡电商网站建设报价网络推广软件有哪些
  • 陕西有没有做网站好的公司网站流量统计分析
  • 商城网站架构ks免费刷粉网站推广马上刷
  • 电子商务网站建设合同范本成都网站优化排名
  • 深圳动漫制作seo入门版
  • 成都哪个公司做网站如何快速推广app
  • 手机定制网站seo优化信
  • 深圳四站合一网站建设电话网络营销ppt怎么做
  • 厦门建设局网站2018软件排名优化
  • 去年做哪些网站能致富曼联官方发文
  • 多语言网站怎么做幽默软文经典案例300
  • 网站的建设流程是什么百度怎么优化网站关键词