0
点赞
收藏
分享

微信扫一扫

Python-with与contextlib简化的上下文管理器学习笔记

梦想家们 2022-10-27 阅读 109


文章目录

  • ​​上下文管理器​​
  • ​​contextlib简化上下文管理器​​

上下文管理器

上下文管理器with实现​​__enter__​​​、​​__exit__​​​这两个魔法函数
举个简单的例子

# 上下文管理协议
class Simple:
def __enter__(self):
print(1)
return self

def __exit__(self, exc_type, exc_val, exc_tb):
print("exit")

def doSomething(self):
print("nothing to do")


if __name__ == '__main__':
with Simple() as simple:
simple.doSomething()

contextlib简化上下文管理器

contextlib修饰的函数是一个生成器

import contextlib

@contextlib.contextmanager
def file_open(file_name):
print ("file open")
yield {}
print ("file end")

with file_open("bobby.txt") as f_opened:
print ("file processing")


举报

相关推荐

0 条评论