管理资源
class File():
def __init__(self, filename, mode):
self.filename = filename
self.mode = mode
def __enter__(self):
self.open_file = open(self.filename, self.mode)
return self.open_file
def __exit__(self, *args):
self.open_file.close()
__init__()
方法设置对象,在这种情况下设置文件名和模式以打开文件。__enter__()
打开并返回文件,__exit__()
只是关闭它。
使用这些神奇的方法(__enter__
,__exit__
)可以让你实现可以轻松使用 with 语句的对象。
使用 File 类:
for _ in range(10000):
with File('foo.txt', 'w') as f:
f.write('foo')