From 8730e9225d3745eca5534aa13e477db7f7c27d29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jure=20=C5=A0orn?= Date: Tue, 19 Feb 2019 14:21:18 +0100 Subject: [PATCH] Withable --- README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/README.md b/README.md index 21a8dda..ddde837 100644 --- a/README.md +++ b/README.md @@ -758,6 +758,28 @@ class Counter: return self.a ``` +### Withable +```python +class FileReader(): + def __init__(self, filename): + self.filename = filename + def __enter__(self): + self.file = open(self.filename) + return self.file.read() + def __exit__(self, *args): + self.file.close() + print(f'FileReader closed {self.filename!r}') +``` + +```python +>>> with open('test.txt', 'w') as file: +... file.write('Hello World!') +>>> with FileReader('test.txt') as text: +... print(text) +Hello World! +FileReader closed 'test.txt' +``` + ### Copy ```python from copy import copy, deepcopy