class Kirin:
def test(self):
print("输出test")
def __enter__(self):
print("执行了enter语句")
#切记:这里的retur返回的值会赋值给with表达式as后的变量标识符!
#如果没返回具体值,那as后面的变量值为None
return self
def __exit__(self, exc_type, exc_value, traceback):
print("执行了exit语句")
#with语句的总结:
#a、什么条件下使用with:必须实现了上下文协议的对象(对象必须实现__enter__和—__exit__两个方法)
#b、这个实现上下文协议的对象称之为【上下文管理器】
#c、with语句部分称之为上下文表达式,上下文表达式必须返回一个上下文管理器!
#d、with语句后面的表达式(上下文表达式)返回值赋值给as后面的标识符【kirin】
#as后面的kirin值仅和__enter—__函数的返回值有关系!
with Kirin() as kirin:
kirin.test()
#执行语句输出结果为:执行了enter语句--输出test--执行了exit语句
还没有评论,来说两句吧...