[Python] enter,exit以及with

2018-12-15  本文已影响0人  Crowley

enter, exit用来和with..as..语句搭配使用。对于一个类A,定义其enter,以及exit成员方法。语句with exp1 as var: 这样的语句,exp1首先被执行,调用其结果的enter函数,enter函数的返回值赋值给var,with语句中的代码被执行之后,调用exp1结果的exit函数,exit还包括三个参数,保存了with代码段中遇到的异常。可以用来简化代码,管理一些需要成对处理(打开,关闭)的操作,比如各种资源的打开和关闭。

class A(object):
    def __init__(self):
           self.name = 'A'

    def __enter__(self):
        print("entering A")
        return self
 
    def __exit__(self, type, value, trace):
        print("exiting A")

with A() as a:
    print(a.name)

运行结果是:

entering A
a
exiting A
上一篇 下一篇

猜你喜欢

热点阅读