Python with用法实例

python中with可以明显改进代码友好度,比如:

复制代码 代码如下:
with open(‘a.txt’) as f: 
    print f.readlines() 

为了我们自己的类也可以使用with, 只要给这个类增加两个函数__enter__, __exit__即可:
复制代码 代码如下:
>>> class A: 
    def __enter__(self): 
        print ‘in enter’ 
    def __exit__(self, e_t, e_v, t_b): 
        print ‘in exit’ 
 
>>> with A() as a: 
    print ‘in with’ 
 
in enter 
in with 
in exit 

另外python库中还有一个模块contextlib,使你不用构造含有__enter__, __exit__的类就可以使用with:
复制代码 代码如下:
>>> from contextlib import contextmanager 
>>> from __future__ import with_statement 
>>> @contextmanager 
… def context(): 
…     print ‘entering the zone’ 
…     try: 
…         yield 
…     except Exception, e: 
…         print ‘with an error %s’%e 
…         raise e 
…     else: 
…         print ‘with no error’ 
… 
>>> with context(): 
…     print ‘—-in context call——‘ 
… 
entering the zone 
—-in context call—— 
with no error 

使用的最多的就是这个contextmanager, 另外还有一个closing 用处不大
复制代码 代码如下:
from contextlib import closing 
import urllib 
 
with closing(urllib.urlopen(‘http://www.python.org’)) as page: 
    for line in page: 
        print line 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2294626.html

(0)
上一篇 2025年2月28日 02:44:04
下一篇 2025年2月22日 13:01:31

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 使用Pyrex来扩展和加速Python程序的教程

     Pyrex 是一种专门设计用来编写 Python 扩展模块的语言。根据 Pyrex Web 站点的介绍,“它被设计用来在友好易用的高级 Python 世界和凌乱的低级 C 世界之间搭建一个桥梁。”虽然几乎所有的 Python 代码都可以作…

    编程技术 2025年2月28日
    200
  • 详细探究Python中的字典容器

    dictionary 我们都曾经使用过语言词典来查找不认识的单词的定义。语言词典针对给定的单词(比如 python)提供一组标准的信息。这种系统将定义和其他信息与实际的单词关联(映射)起来。使用单词作为键定位器来寻找感兴趣的信息。这种概念延…

    编程技术 2025年2月28日
    200
  • Python中decorator使用实例

    在我以前介绍 python 2.4 特性的blog中已经介绍过了decorator了,不过,那时是照猫画虎,现在再仔细描述一下它的使用。 关于decorator的详细介绍在 Python 2.4中的What’s new中已经有介…

    编程技术 2025年2月28日
    200
  • Python中用Spark模块的使用教程

     在日常的编程中,我经常需要标识存在于文本文档中的部件和结构,这些文档包括:日志文件、配置文件、定界的数据以及格式更自由的(但还是半结构化的)报表格式。所有这些文档都拥有它们自己的“小语言”,用于规定什么能够出现在文档内。我编写这些非正式解…

    编程技术 2025年2月28日
    200
  • Python中一些自然语言工具的使用的入门教程

    NLTK 是使用 Python 教学以及实践计算语言学的极好工具。此外,计算语言学与人工 智能、语言/专门语言识别、翻译以及语法检查等领域关系密切。NLTK 包括什么 NLTK 会被自然地看作是具有栈结构的一系列层,这些层构建于彼此基础之上…

    编程技术 2025年2月28日
    200
  • Python遍历目录的4种方法实例介绍

    1.os.popen运行shell列表命令 复制代码 代码如下:def traverseDirByShell(path):    for f in os.popen(‘ls ‘ + path):        pri…

    编程技术 2025年2月28日
    200
  • Python中的异常处理简明介绍

    python异常处理机制和java类似,采用try-except-finally的结构. try-except检测异常 格式 复制代码 代码如下:try:    try_statementexcept (ErrorType1, ErrorT…

    编程技术 2025年2月28日
    200
  • Python命令行参数解析模块getopt使用实例

    格式 getopt(args, options[, long_options]) 1.args表示要解析的参数. 2.options表示脚本要识别的字符.字符之间用”:”分隔,而且必须要以”:”后结尾,例如”a:b:c:”. 3.long_…

    编程技术 2025年2月28日
    200
  • python中的装饰器详解

    在了解装饰器的之前一定要先了解函数作为参数传递, 什么是函数内嵌,请参考我之前写的博客函数简介 因为在python里面,函数也是对象,也可以作为参数进行传递.python装饰器本质也是一种特殊函数,它接收的参数是函数对象,然后动态地函数参数…

    编程技术 2025年2月28日
    200
  • Python日志模块logging简介

    logging分为4个模块: loggers, handlers, filters, and formatters. ●loggers: 提供应用程序调用的接口●handlers: 把日志发送到指定的位置●filters: 过滤日志信息●f…

    2025年2月28日
    200

发表回复

登录后才能评论