python: context manage

class MyOpen(object): 
"""context manage class"""
def __init__(self, file, mode): 
    self._file = file 
    self._mode = mode 

def __enter__(self): self._handle = open(self._file, self._mode) 
    return self._handle 

def __exit__(self, exc_type, exc_val, exc_tb): 
    print('Type: ', exc_type) 
    print('Value:', exc_val) 
    print('TreacBack:', exc_tb)        
    self._handle.close()
return True 

with MyOpen('f.txt', 'r') as f:    
    f.write('python')


from contextlib import contextmanager

@contextmanager
def diy_open(filename, **kwargs):
    f = open(filename, **kwargs)
    try:
        yield f
    finally:
       f.close()

with diy_open('test.txt',
encoding='utf-8') as f:
    print(f.readlines())

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容