请问老师为什么__enter__要加入return self?
来源:4-13 contextlib简化上下文管理器

慕数据3541479
2018-04-16
在上下文管理器中,__enter__函数中加入return self的背后原理时什么?
写回答
1回答
-
比如你打开一个文件
with open(xxx.txt) as f:
执行__enter__返回的这个self就是你就是你打开的那个文件,你才可以对文件读写操作,
你可以自己顶一个上下文管理的类试一下,不返回这个self你是没办法打开文件的
class MyResource:
def __enter__(self):
print("查询开始")
# return self
def __exit__(self, exc_type, exc_val, exc_tb):
print("查询结束")
def query(self):
print("查询中")
with MyResource() as f:
f.query()412018-04-16
相似问题