管理资源

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