zoukankan      html  css  js  c++  java
  • python的with...as...的实质

    python的with...as...的实质

    一、总结

    一句话总结:

    with as语句等价于try finally语句
    with expression as variable  
        with-block
    等价于
    try: 执行 __enter__的内容 执行 with_block. finally: 执行 __exit__内容

    1、try..except..finally语句的实质?

    try捕获异常,except处理异常,finally必定执行

    二、python的with...as...的实质

    博客对应课程的视频位置:

    with expression as variable  
        with-block

    的执行过程是

    首先执行expression里面的__enter__函数,
    它的返回值会赋给as后面的variable,
    想让它返回什么就返回什么,只要你知道怎么处理就可以了,
    如果不写as variable,返回值会被忽略。

    然后,开始执行with-block中的语句,
    不论成功失败(比如发生异常、错误,设置sys.exit()),
    在with-block执行完成后,会执行expression中的__exit__函数。


    这个和try finally函数有什么关系呢?
    其实,这样的过程等价于:

    try:
        执行 __enter__的内容  
        执行 with_block.  
    finally:  
        执行 __exit__内容  

     
  • 相关阅读:
    HDU1205 吃糖果【水题】
    HDU2568 前进【水题】
    架构图初体验
    五层架构
    文件系统权限设计涉及范畴
    微服务
    领域驱动设计
    容器技术Docker
    架构总结
    仓储模式的简单理解
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/13270352.html
Copyright © 2011-2022 走看看