vi withCM.py #在Linux里编辑文件withCM.py

下面是文件正文

f = open("new.txt","w")
print (f.closed) #输出判断文件是否关闭的属性
f.write("Hello world!")
f.close()
print (f.closed)

在Linux中执行程序

$ python withCM.py
False
True

例子2

代码示例:

coding:utf-8

class VOW(object):
def init(self,text):
self.text = text
def enter(self):
self.text = "enter: " + self.text #添加前缀
return self #注意,这里返回对象!并在下面将其赋值给了myvow
def exit(self,exc_type,exc_value,traceback):
self.text=self.text + "now exit!" #添加后缀

with VOW("你好") as myvow:
print(myvow.text)
print(myvow.text)
print(myvow.text)

输出结果:
enter: 你好
enter: 你好
enter: 你好now exit!

解释:

with EXPR as VAR: #等价于下面的操作

VAR =EXPR #EXPR是某个类
VAR =VAR.__enter__()
try:
BLOCK #执行语句块
finally:
VAR.__exit__()

上下文管理器:

规定对象的使用范围,超越范围则“采取处理”
with…as…代码块

任何定义了__enter__()和__exit__()方法的对象都可以用于上下文管理器

转载于:https://www.cnblogs.com/alisonzhu/p/5731176.html

python 上下文管理器相关推荐

  1. 此上下文中不支持函数定义。请在代码文件中创建函数。_深入解析Python上下文管理器,让你不再迷茫!...

    1. 上下文管理器 一个类只要实现了 __enter__() 和 __exit__() 这个两个方法,通过该类创建的对象我们就称之为上下文管理器. 上下文管理器可以使用 with 语句,with语句之 ...

  2. 爱上python系列------python上下文管理器(二):对suppress进行装饰器重新实现

    python上下文管理器可以做的事情简直不能太多 这不,官方的文档实现了一个方法suppress,用于处理异常 from contextlib import suppresswith suppress ...

  3. Python 上下文管理器和with块 二

    标准库中还有个contextlib 模块,提供一些实用工具, closing 如果对象提供了 close() 方法,但没有实现 __enter__/__exit__ 协议,那么可以使用这个函数构建上下 ...

  4. Python 上下文管理器和with块 一

    上下文管理器对象存在的目的是管理 with 语句,就像迭代器的存在是为了管理 for 语句一样 上下文管理器协议包含 __enter__ 和 __exit__ 两个方法 把值绑定到目标变量上(as 子 ...

  5. Python上下文管理器的魔力

    点击关注我哦 一篇文章带你了解Python上下文管理器的魔力 小编将为您准备一份很棒的Python上下文管理器使用指南,这将使您的代码更具可读性和可靠性,降低您的错误发生率. 资源管理器是我们在任何编 ...

  6. Python 上下文管理器和 with 语句

    1. 上下文管理器概念 什么是 Python 的上下文管理器(Context Managers)呢? ​ 含有 __enter__ 和 __exit__ 方法的对象就是.上下文管理器存在的目的是管理 ...

  7. python上下文管理器

    什么是上下文管理器? 基本语法 with open('test.txt') as f:print f.readlines() 1. 上下文表达式:with open('test.txt') as f: ...

  8. 神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python上下文管理器)

    with语句 使用with语句替代try-finally 语句,代码更加的简洁清晰 对于需要对资源进行访问的任务,无论在代码运行过程中,是否发 生异常,都会执行必要的清理操作,释放资源. 1. wit ...

  9. python 上下文管理器、 else 块、@contextmanager

    文章目录 1. else 2. with上下文管理器 3. contextlib模块实用工具 4. @contextmanager 装饰器 learn from <流畅的python> 1 ...

  10. Python 上下文管理器与with语句

    Python中把进入代码块前调用__enter__ 方法并在离开代码块后调用__exit__方法的对象作为上下文管理器,本文中我们就来深入解析Python中的上下文管理器,来看看上下文管理器的作用及用 ...

最新文章

  1. Java黑皮书课后题第3章:3.7(金融应用:整钱兑零)修改程序清单2-10,使之只显示非零的币值单位,用单词的单数形式显示一个单位,复数形式显示多于一个的单位的值
  2. 20170429,上市公司2016年报全出炉(附最新排行榜)
  3. tomee_微服务系列:MicroProfile和Apache TomEE
  4. 【LeetCode笔记】34. 在排序数组中查找元素的第一个和最后一个位置(Java、二分)
  5. 没有bug队——加贝——Python 53,54
  6. 引入外部机构需要注意的事项_如何与外部营销机构合作
  7. 一张图看懂SOA与微服务
  8. C++模板之一:函数模板.odt
  9. C 标准库—— stdlib.h(包括 rand srand 的实现)
  10. C# 编译的DLL文件在其他项目中调用时,看不见注释
  11. springBoot+Mybatis注解大全
  12. 【学堂在线数据挖掘:理论方法笔记】第二天(3.18)
  13. python函数def无效_python自定义函数def的应用详解
  14. marshmallow——简介
  15. Vue实现树形菜单组件
  16. 公司企业邮箱账号格式怎么填?
  17. 一个无线遥控通讯协议破解实例
  18. 计算机系英文简历常用的词汇,计算机专业英文简历词汇
  19. C字符串操作strlen/strnlen_s详解
  20. Canvas特效动画

热门文章

  1. 关于字体图标在firefox上本地访问无法显示的问题分析
  2. android module 加载.so,关于Android Studio主Module与依赖Module同时引入so库的问题
  3. ssm radis mysql_SSM完美整合Redis
  4. centos7 LVM调整,划分home部分容量到root
  5. 分页输入框跳转 java_displaytag 分页-添加页码输入框跳转至指定页
  6. group anagrams leetcode java_LeetCode第[49]题(Java):Group Anagrams
  7. SpringSecurity常用登录认证方案
  8. 复杂一点的二叉树递归
  9. Linux Ubuntu jdk(环境变量)配置
  10. 代理模式、动态代理及其应用