python学习之with...as语句
2017-09-29 17:15
302 查看
python中的with...as...语句类似于try...finally...语句:
# -*- coding: utf-8 -*- # """ with...as...语句 """ #try...finally...语句 f = open('data.txt') try: data = f.read() print(data) finally: f.close() #with...as...语句 with open('data.txt') as f: data = f.read() print(data)
hello,leo! hello,leo! [Finished in 0.1s]
从上面可以看出,with...as语句看起来更为简洁。
原理
1.表达式执行并返回一个对象A
2.对象A调用__enter__()
3.__enter__()将返回对象B赋值给变量C
4.等表达式全部执行完毕,对象A调用__exit__()方法
下面来看一个例子:
# -*- coding: utf-8 -*- # """ with...as...语句 """ class Example: def __enter__(self): print('In__enter__()') return "Over!" def __exit__(self,*args): print('In__exit__()') return "Exit!" def get_example(): return Example() with get_example() as example: print(example)
结果:
In__enter__() Over! In__exit__() [Finished in 0.1s]
分析:
1.表达式get_example()执行并返回对象Example()
2.对象Example()调用__enter__()方法
3.__enter__()方法将返回对象"Over!"赋值给变量example
4.对象Example()调用__exit__()方法
相关文章推荐
- python中的with-as语句学习
- Python中的with语句与上下文管理器学习总结
- Python的with...as...语句
- 学习笔记-小甲鱼Python3学习第三十四讲:丰富的else语句及简洁的with语句
- python学习笔记 with语句
- Python--小甲鱼学习笔记--第34课:else语句及with语句
- python2.7高级编程 笔记一(Python中的with语句与上下文管理器学习总结)
- python学习笔记:利用contextlib和@contextmanager实现with语句上下文实例
- 零基础入门学习Python(34)--丰富的else语句及简洁的with语句
- Python学习之with语句和上下文管理器详解
- Python 的 with ... as ... 语句
- 学习Python:with...as的用法
- Coursera 深度学习 deep learning.ai 吴恩达 神经网络和深度学习 第一课 第二周 编程作业 Python Basics with Numpy
- 如何理解Python的With语句?
- python学习笔记8(表达式和语句)
- python之with语句的原理
- Python新手学习基础之条件语句——elif语句
- Automate the Boring Stuff with Python学习笔记1
- python之with open as
- Python学习笔记_5_if语句