python中with的用法
清单 1. with 语句的语法格式
1 2 | with context_expression [as target(s)]: with-body |
无论context_expression是否发生异常,都能保证不报错,类似于try/finally范式。
__enter__()语句返回值赋给target(s)
这个机制叫做Python上下文管理器
通过Python上下文管理器的机制,只要将所有的计算放在“with”的内部就可以。当上下文管理器退出时候会自动释放所有资源。这样既解决了因为异常退出时资源释放的问题,同时也解决了忘记调用析构函数而产生的资源泄露。