zoukankan      html  css  js  c++  java
  • with&as上下文管理协议

    通过with 方式调用的方式

    class Open:
        def __init__(self,name):
            self.name = name
    
        def __enter__(self): #with调用的时候调用此功能
            print('enter')
            return self
    
        def __exit__(self, exc_type, exc_val, exc_tb): #with调用执行完之后执行此功能, exc_type异常类, exc_val异常值,exc_tb异常追踪信息
            print('exit')
    
    with Open('a,txt') as f:
        print('print')
        print('f.name is :',f.name)
    '''
    enter
    print
    f.name is : a,txt
    exit
    '''
    

    没有异常的情况下,整个代码块运行完毕后去触发__exit__,它的三个参数都为None
    有异常的情况下,从异常出现的位置直接触发__exit__

    1. 如果__exit__的返回值为True,代表吞掉了异常
    2. 如果__exit__的返回值不为True,代表吐出了异常
    3. exit的运行完毕就代表整个with语句的执行完毕
  • 相关阅读:
    Distributed
    Archi
    SpringCloud
    Java 多线程
    Java 基础
    Java 基础
    Java 基础
    Java 基础
    python--all与any
    pandas--apply/applymap/map
  • 原文地址:https://www.cnblogs.com/chrrydot/p/9823263.html
Copyright © 2011-2022 走看看