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__内容  

     
  • 相关阅读:
    Hive-基本操作
    Hive-安装
    Hive-概述
    游荡二十几天的感想
    js html css
    C#笔试总结
    ubuntu16.04 下 C# mono开发环境搭建
    scoket、TCP、UDP、WebService选型
    虚拟机安装Windows系统,再安装orcale
    Rosetta Stone 不在C盘安装步骤
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/13270352.html
Copyright © 2011-2022 走看看