"""
__enter__:1.进入文件,开打文件时执行
2.函数应该返回自己self
__exit__:1.退出文件、报错中断、或者代码执行完时执行
2.可以有返回值,是bool类型
"""
class MyOpen(object): def __init__(self, path): self.path = path # 进入文件时触发 def __enter__(self): self.file = open(self.path) print("文件打开....") return self # 离开文件时触发 def __exit__(self, exc_type, exc_val, exc_tb): print("文件关闭") # print(exc_type,exc_val,exc_tb) self.file.close() # 关闭文件 return True with MyOpen('a.txt') as f: print(f.file.readline()) # f.file.readline() # 文件已经关闭了,不能读