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

     
  • 相关阅读:
    简单使用SQLite 的增删改查
    androidd 程序默认安装位置和数据存储位置(公用和私用)
    git用法demo
    jQuery动态赋值给选择器
    无法访问虚拟机web服务
    日志-demo
    vitualbox + centos出现问题整理
    安全基础术语
    vs2010+qt4.8.6
    redis高并发
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/13270352.html
Copyright © 2011-2022 走看看