上下文管理器
import contextlib class Pipeline(object): def _publish(self, objects): print('-------start') print(objects) # Imagine publication code here pass def _flush(self): print('-------end') # Imagine flushing code here pass @contextlib.contextmanager def publisher(self): try: yield self._publish finally: self._flush() pipeline = Pipeline() with pipeline.publisher() as publisher: publisher([1, 2, 3, 4]) print('-----------')
通过一条 with 语句同时打开两个文件
with open("file1", "r") as source, open("file2", "w") as destination: destination.write(source.read())