• python


    上下文管理协议:

    with + __enter__ + __exit__

    #上下问管理协议:
    #with + __enter__ + __exit__
    
    class Test():
        def __init__(self,file):
            self.file = file
    
        def __enter__(self):
            print("执行enter")
    
        def __exit__(self, exc_type, exc_val, exc_tb):
            print("执行exit")
            #异常类型
            print(exc_type)
            #异常的数值
            print(exc_val)
            #异常的traceback
            print(exc_tb)
    
            # return True
    
    # with 开始执行时触发Test __enter__方法
    # 当with 内的代码执行完后,执行__exit__方法
    with Test("a.txt") as f:
        print(sadsada)
    
    #总结:
    # 执行代码块
    # 1.没有异常的情况下,整个代码块运行完毕后去触发__exit__,它的三个参数都为None
    # 2.有异常的情况下,从异常出现的位置直接触发__exit__
    #     a.如果__exit__的返回值为True,代表吞掉了异常
    #     b.如果__exit__的返回值不为True,代表直接报异常
    # 3.__exit__的运行完毕,代表了整个with语句的执行完毕.
    
    #用途:
    # 1.使用with语句的目的就是把代码放入with中执行,with结束后,自动完成清理工作,无须手动干预
    # 2.在需要管理一些资源比如文件,网络链接和锁的编程环境,可以在__exit__中定制自动释放资源的机制,你无须再去关心这个问题.
  • 相关阅读:
    题解 P5320
    Codeforces 1500F
    三个 AGC D(AGC037D、AGC043D、AGC050D)
    Atcoder Regular Contst 084 D
    DG-基础知识点整理
    MySQL-数据恢复场景实验
    MySQL-查看Galera集群状态
    MySQL-运行日志切割
    MySQL-生产环境删除大表或大量binlog策略
    MySQL-基于(MySQL 5.7)NDB中启用共享权限表
  • 原文地址:https://www.cnblogs.com/Anec/p/9796826.html
Copyright © 2020-2023  润新知