我们知道在操作文件对象的时候可以这么写

with open('a.txt') as f:
  '代码块'

 

上述叫做上下文管理协议,即with语句,为了让一个对象兼容with语句,必须在这个对象的类中声明__enter__和__exit__方法

 1 class Open:
 2     def __init__(self,name):
 3         self.name=name
 4 
 5     def __enter__(self):
 6         print('出现with语句,对象的__enter__被触发,有返回值则赋值给as声明的变量')
 7         # return self
 8     def __exit__(self, exc_type, exc_val, exc_tb):
 9         print('with中代码块执行完毕时执行我啊')
10 
11 
12 with Open('a.txt') as f:
13     print('=====>执行代码块')
14     # print(f,f.name)
15 
16 上下文管理协议
上下文管理协议

相关文章:

  • 2021-10-02
  • 2021-09-05
  • 2022-01-26
  • 2018-09-17
  • 2022-02-20
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2018-10-24
  • 2022-02-11
  • 2021-11-13
  • 2021-11-12
  • 2021-12-11
相关资源
相似解决方案