1. 程式人生 > >python的with和__enter__ 、 __exit__

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