python中的with语句用法总结

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语句

猜你喜欢

转载自blog.csdn.net/weixin_43343144/article/details/86625680
今日推荐