# author : yang.cao
# date : 2020.02.15
from contextlib import contextmanager
class Context:
def __init__(self, filename, mode):
self.__filename = filename
self.__mode = mode
self.__fp = None
def __enter__(self):
self.__fp = open(self.__filename, self.__mode)
return self.__fp
def __exit__(self, exc_type, exc_val, exc_tb):
self.__fp.close()
@contextmanager
def test(filename, mode):
f = open(filename, mode)
yield f
f.close()
with test("out.txt", "wb") as f:
f.write(b"hello world")
# with Context("out2.txt", "wb") as f:
# f.write(b"hello world")
python上下文管理器的两种实现方式
最新推荐文章于 2024-05-06 17:53:43 发布