zoukankan      html  css  js  c++  java
  • Python with

     1 class Query(object):
     2 
     3     def __init__(self, name):
     4         self.name = name
     5 
     6     def __enter__(self):
     7         print('Begin')
     8         return self    #若返回self改为‘a',最后print q 为’a'
     9 
    10     def __exit__(self, exc_type, exc_value, traceback):
    11         if exc_type:    #异常类型,异常值,异常跟踪信息 
    12             print('Error')   #  return False 抛出异常
    13         else:
    14             print('End')   # return Turn
    15 
    16     def query(self):
    17         print('Query info about %s...' % self.name)
    18 
    19 
    20 with Query('Bob') as q:
    21     q.query()

    with语句需要支持上下文管理协议的对象, 上下文管理协议包含__enter__和__exit__两个方法。with语句建立运行时上下文需要通过这两个方法执行进入和退出操作。

    先执行__enter__()方法,然后将返回值赋值给了q,再执行with下面的语句,最后执行__exit__()方法。

  • 相关阅读:
    APIJSON
    pinyin4j 中文转拼音
    JsonPath
    rocket-api
    SpringCloudAlibaba和SpringCloud的区别
    jar分离lib打包
    java8 forEach
    java8 CompletableFuture
    IE浏览器根证书问题
    基于Win服务的标签打印(模板套打)[转]
  • 原文地址:https://www.cnblogs.com/qqzj/p/6673790.html
Copyright © 2011-2022 走看看