zoukankan      html  css  js  c++  java
  • python的with和__enter__ 、 __exit__

    __enter__(): 在使用with语句时调用,会话管理器在代码块开始前调用,返回值与as后的参数绑定

    __exit__():   会话管理器在代码块执行完成好后调用,在with语句完成时,对象销毁之前调用

    test.txt的内容为hello world!

    class Test(object):
        def __init__(self,name,flag):
            self.filename = name
            self.flag = flag
        
        def __enter__(self):
            '''
            @summary: 使用with语句是调用,会话管理器在代码块开始前调用,返回值与as后的参数绑定
            '''
            print "__enter__:Open %s"%self.filename
            self.f = open(self.filename,self.flag)
            return self.f
            
        def __exit__(self,Type, value, traceback):
            '''
            @summary: 会话管理器在代码块执行完成好后调用(不同于__del__)(必须是4个参数)
            '''
            print "__exit__:Close %s"%self.filename
            self.f.close()
            
        def __del__(self):
            print "__del__"
            
    if __name__ == "__main__":
        with Test('test.txt','r+') as f:
            content = f.read()
            print content
        print "end"

    来源:https://blog.csdn.net/xhw88398569/article/details/48691487

    https://www.cnblogs.com/lipijin/p/4460487.html

  • 相关阅读:
    合一算法最新版
    string.at(i)
    字符串逆转
    String
    Vector
    1005POJ
    但愿天堂一切都好
    合一算法
    合一算法2
    BTREE与其它索引的优缺点对比
  • 原文地址:https://www.cnblogs.com/shengulong/p/10051932.html
Copyright © 2011-2022 走看看