管理資源
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')