zoukankan      html  css  js  c++  java
  • 简述with原理

    with open('x') as f:
        for line in f:
            print(line.replace('a', 'b'))

    不管在处理文件过程中是否发生异常,都能保证 with 语句执行完毕后已经关闭了打开的文件句柄。如果使用传统的 try/finally 范式,则要使用类似如下代码:

    somefile = open(r'somefileName')
    try:
        for line in somefile:
            print line
            # ...more code
    finally:
        somefile.close()

    格式:

    with context_expression [as target(s)]:
        with-body

    context_expression 要返回一个上下文管理器对象,该对象并不赋值给 as 子句中的 target(s) ,如果指定了 as 子句的话,会将上下文管理器的 __enter__() 方法的返回值赋值给 target(s)。target(s) 可以是单个变量,或者由“()”括起来的元组(不能是仅仅由“,”分隔的变量列表,必须加“()”)。

    Python 对一些内建对象进行改进,加入了对上下文管理器的支持,可以用于 with 语句中,比如可以自动关闭文件、线程锁的自动获取和释放等

  • 相关阅读:
    Spring Boot 整合 Apache Ignite
    QuantumTunnel:Netty实现
    QuantumTunnel:内网穿透服务设计
    Java虚拟机
    LeetCode
    Java线程如何返回数据
    Java动态代理简单应用
    Java反射机制浅析
    数据结构之Heap (Java)
    JUnit4单元测试基础篇
  • 原文地址:https://www.cnblogs.com/sea-stream/p/11189584.html
Copyright © 2011-2022 走看看