zoukankan      html  css  js  c++  java
  • python中with的用法

    基本用法:

    >>> 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


    还有一种用法,使用contextmanager。contextlib是为了加强with语句,提供上下文机制的模块,它是通过Generator实现的。通过定义类以及写__enter__和__exit__来进行上下文管理虽然不难,但是很繁琐。contextlib中的contextmanager作为装饰器来提供一种针对函数级别的上下文管理机制。常用框架如下:

    from contextlib import contextmanager
      
    @contextmanager
    def make_context() :
        print 'in enter'
        try :
            yield {}
        except RuntimeError, err :
            print 'error' , err
        finally :
            print 'in exit'
      
    with make_context() as value :
        print 'with'                                                                                                                                                                                                                                                                                                     in enter                                                                                                                                                  in with                                                                                                                                                   in exit              


    这只是一些基本的知识,深入的话,还得看文档。



  • 相关阅读:
    NOI2005维修数列
    BZOJ1208 [HNOI2004]宠物收养所
    BZOJ3223 文艺平衡树
    BZOJ [JSOI2008]星球大战starwar
    BZOJ1013 [JSOI2008]球形空间产生器sphere
    小程序之底部tabBar
    es6
    vue.js安装
    模块打包工具webpack
    highchart
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3324942.html
Copyright © 2011-2022 走看看