赞
踩
class Test():
def __enter__(self):
print('进入enter方法')
def __exit__(self, exc_type, exc_val, exc_tb):
print('进入exit方法')
with Test() as obj:
print('进入业务方法')
进入enter方法
进入业务方法
进入exit方法
在这里,可以简单理解with语句的基本用法;但是with语句中as后面的obj并不是上下文管理器,而是__enter__方法中所返回的对象,如下:
class Test():
def __enter__(self):
a = 1
print('进入enter方法')
return a
def __exit__(self, exc_type, exc_val, exc_tb):
print('进入exit方法')
with Test() as obj:
print('进入业务方法')
print(obj)
进入enter方法
进入业务方法
1
进入exit方法
由此可见 as后面的obj对象其实就是__enter__方法中所返回的对象。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。