python的with语句。
针对支持上下文管理器协议(Context Management Protocol)的对象,这些对象都有enter()和exit()两种方法,需要通过enter进入,再用exit退出。使用with语句可以自动的在with那一行调用enter,并且在with语句块执行结束后调用exit。比起try/finally会简练很多,也不容易忘记写exit()。
从这里这里看到有几个使用小技巧:
- 自定义上下文管理器协议对象。自己写一个有enter和exit方法的对象。
- 使用nested语句,可以在一行with打开多个对象。