zoukankan      html  css  js  c++  java
  • 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__中定制自动释放资源的机制,你无须再去关心这个问题.
  • 相关阅读:
    监听用户的访问的链接
    软件开发的流程
    PHP性能优化四(业务逻辑中使用场景)
    php性能优化三(PHP语言本身)
    php性能优化二(PHP配置php.ini)
    poj 1676
    计蒜客 蒜头君下棋
    计蒜客 划分整数
    计蒜客 蒜头君的数轴
    计蒜客 藏宝图
  • 原文地址:https://www.cnblogs.com/Anec/p/9796826.html
Copyright © 2011-2022 走看看