python 上下文管理器
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 上下文管理器相关推荐
- 此上下文中不支持函数定义。请在代码文件中创建函数。_深入解析Python上下文管理器,让你不再迷茫!...
1. 上下文管理器 一个类只要实现了 __enter__() 和 __exit__() 这个两个方法,通过该类创建的对象我们就称之为上下文管理器. 上下文管理器可以使用 with 语句,with语句之 ...
- 爱上python系列------python上下文管理器(二):对suppress进行装饰器重新实现
python上下文管理器可以做的事情简直不能太多 这不,官方的文档实现了一个方法suppress,用于处理异常 from contextlib import suppresswith suppress ...
- Python 上下文管理器和with块 二
标准库中还有个contextlib 模块,提供一些实用工具, closing 如果对象提供了 close() 方法,但没有实现 __enter__/__exit__ 协议,那么可以使用这个函数构建上下 ...
- Python 上下文管理器和with块 一
上下文管理器对象存在的目的是管理 with 语句,就像迭代器的存在是为了管理 for 语句一样 上下文管理器协议包含 __enter__ 和 __exit__ 两个方法 把值绑定到目标变量上(as 子 ...
- Python上下文管理器的魔力
点击关注我哦 一篇文章带你了解Python上下文管理器的魔力 小编将为您准备一份很棒的Python上下文管理器使用指南,这将使您的代码更具可读性和可靠性,降低您的错误发生率. 资源管理器是我们在任何编 ...
- Python 上下文管理器和 with 语句
1. 上下文管理器概念 什么是 Python 的上下文管理器(Context Managers)呢? 含有 __enter__ 和 __exit__ 方法的对象就是.上下文管理器存在的目的是管理 ...
- python上下文管理器
什么是上下文管理器? 基本语法 with open('test.txt') as f:print f.readlines() 1. 上下文表达式:with open('test.txt') as f: ...
- 神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python上下文管理器)
with语句 使用with语句替代try-finally 语句,代码更加的简洁清晰 对于需要对资源进行访问的任务,无论在代码运行过程中,是否发 生异常,都会执行必要的清理操作,释放资源. 1. wit ...
- python 上下文管理器、 else 块、@contextmanager
文章目录 1. else 2. with上下文管理器 3. contextlib模块实用工具 4. @contextmanager 装饰器 learn from <流畅的python> 1 ...
- Python 上下文管理器与with语句
Python中把进入代码块前调用__enter__ 方法并在离开代码块后调用__exit__方法的对象作为上下文管理器,本文中我们就来深入解析Python中的上下文管理器,来看看上下文管理器的作用及用 ...
最新文章
- Java黑皮书课后题第3章:3.7(金融应用:整钱兑零)修改程序清单2-10,使之只显示非零的币值单位,用单词的单数形式显示一个单位,复数形式显示多于一个的单位的值
- 20170429,上市公司2016年报全出炉(附最新排行榜)
- tomee_微服务系列:MicroProfile和Apache TomEE
- 【LeetCode笔记】34. 在排序数组中查找元素的第一个和最后一个位置(Java、二分)
- 没有bug队——加贝——Python 53,54
- 引入外部机构需要注意的事项_如何与外部营销机构合作
- 一张图看懂SOA与微服务
- C++模板之一:函数模板.odt
- C 标准库—— stdlib.h(包括 rand srand 的实现)
- C# 编译的DLL文件在其他项目中调用时,看不见注释
- springBoot+Mybatis注解大全
- 【学堂在线数据挖掘:理论方法笔记】第二天(3.18)
- python函数def无效_python自定义函数def的应用详解
- marshmallow——简介
- Vue实现树形菜单组件
- 公司企业邮箱账号格式怎么填?
- 一个无线遥控通讯协议破解实例
- 计算机系英文简历常用的词汇,计算机专业英文简历词汇
- C字符串操作strlen/strnlen_s详解
- Canvas特效动画
热门文章
- 关于字体图标在firefox上本地访问无法显示的问题分析
- android module 加载.so,关于Android Studio主Module与依赖Module同时引入so库的问题
- ssm radis mysql_SSM完美整合Redis
- centos7 LVM调整,划分home部分容量到root
- 分页输入框跳转 java_displaytag 分页-添加页码输入框跳转至指定页
- group anagrams leetcode java_LeetCode第[49]题(Java):Group Anagrams
- SpringSecurity常用登录认证方案
- 复杂一点的二叉树递归
- Linux Ubuntu jdk(环境变量)配置
- 代理模式、动态代理及其应用