您的位置:首页 > 编程语言 > Python开发

Python中的with...as语法

2011-06-07 11:01 309 查看
这个语法是用来代替传统的try...finally语法的。

with EXPRESSION [ as VARIABLE]

WITH-BLOCK

其中,EXPRESSION表达式返回一个“Content Manager”的子类给VARIABLE。Content Manager规定了__enter__和__exit__方法,这段代码的执行顺序是:

1. 执行EXPRESSION表达式,返回一个Content Manager的子类对象(记为O)给VARIABLE变量,

2. 调用O的__enter__方法

3. 执行WITH-BLOCK

4. 若WITH-BLOCK抛出异常,则执行O的__exit__(type,value,traceback),三个参数的值定义了异常的类型、值和调用堆栈。

5. 若WITH-BLOCK未抛出异常成功结束,则执行O的__exit__(type,value,traceback),三个参数的值为空。

这样做简化了传统的try...finally语法,更多详细内容请看OReilly的《Learning Python第四版》第33章
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: