开发者社区> 问答> 正文

python上下文管理器

python上下文管理器

展开
收起
montos 2020-04-16 21:42:52 591 0
2 条回答
写回答
取消 提交回答
  • 代码改变世界,我们改变代码

    with open('some_file', 'w') as fp: fp.write('6666!')

    有以下两个 enter_

    exit

    2020-04-17 18:41:23
    赞同 展开评论 打赏
  • 上下文管理器允许你在有需要的时候,精确地分配和释放资源。 使用上下文管理器最广泛的案例就是with语句了。 想象下你有两个需要结对执行的相关操作,然后还要在它们中间放置一段代码。 上下文管理器就是专门让你做这种事情的。举个例子:

    with open('some_file', 'w') as opened_file:
        opened_file.write('Hola!')
    

    上面这段代码打开了一个文件,往里面写入了一些数据,然后关闭该文件。如果在往文件写数据时发生异常,它也会尝试去关闭文件。上面那段代码与这一段是等价的:

    file = open('some_file', 'w')
    try:
        file.write('Hola!')
    finally:
        file.close()
    

    当与第一个例子对比时,我们可以看到,通过使用with,许多样板代码(boilerplate code)被消掉了。 这就是with语句的主要优势,它确保我们的文件会被关闭,而不用关注嵌套代码如何退出。 上下文管理器的一个常见用例,是资源的加锁和解锁,以及关闭已打开的文件(就像我已经展示给你看的)。 让我们看看如何来实现我们自己的上下文管理器。这会让我们更完全地理解在这些场景背后都发生着什么。

    2020-04-16 21:43:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载