enter, exit用來和with..as..語句搭配使用。對(duì)于一個(gè)類A,定義其enter,以及exit成員方法。語句with exp1 as var: 這樣的語句,exp1首先被執(zhí)行,調(diào)用其結(jié)果的enter函數(shù),enter函數(shù)的返回值賦值給var,with語句中的代碼被執(zhí)行之后,調(diào)用exp1結(jié)果的exit函數(shù),exit還包括三個(gè)參數(shù),保存了with代碼段中遇到的異常。可以用來簡(jiǎn)化代碼,管理一些需要成對(duì)處理(打開,關(guān)閉)的操作,比如各種資源的打開和關(guān)閉。
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)
運(yùn)行結(jié)果是:
entering A
a
exiting A