diff --git a/README.md b/README.md index f83b93c..676bf74 100644 --- a/README.md +++ b/README.md @@ -1156,6 +1156,8 @@ class Counter: ``` ### Context Manager +* **Enter() should lock the resources and return an object.** +* **Exit() should release the resources.** ```python class MyOpen(): def __init__(self, filename): diff --git a/index.html b/index.html index 93840d0..3dacab2 100644 --- a/index.html +++ b/index.html @@ -1094,7 +1094,10 @@ Z = dataclasses.make_dataclass(<span class="hljs-string">'Z'</span>, [<span clas <span class="hljs-meta">>>> </span>counter(), counter(), counter() (<span class="hljs-number">1</span>, <span class="hljs-number">2</span>, <span class="hljs-number">3</span>) </code></pre> -<div><h3 id="contextmanager">Context Manager</h3><pre><code class="python language-python hljs"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MyOpen</span><span class="hljs-params">()</span>:</span> +<div><h3 id="contextmanager">Context Manager</h3><ul> +<li><strong>Enter() should lock the resources and return an object.</strong></li> +<li><strong>Exit() should release the resources.</strong></li> +</ul><pre><code class="python language-python hljs"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MyOpen</span><span class="hljs-params">()</span>:</span> <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">__init__</span><span class="hljs-params">(self, filename)</span>:</span> self.filename = filename <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">__enter__</span><span class="hljs-params">(self)</span>:</span> @@ -1104,6 +1107,7 @@ Z = dataclasses.make_dataclass(<span class="hljs-string">'Z'</span>, [<span clas self.file.close() </code></pre></div> + <pre><code class="python language-python hljs"><span class="hljs-meta">>>> </span><span class="hljs-keyword">with</span> open(<span class="hljs-string">'test.txt'</span>, <span class="hljs-string">'w'</span>) <span class="hljs-keyword">as</span> file: <span class="hljs-meta">... </span> file.write(<span class="hljs-string">'Hello World!'</span>) <span class="hljs-meta">>>> </span><span class="hljs-keyword">with</span> MyOpen(<span class="hljs-string">'test.txt'</span>) <span class="hljs-keyword">as</span> file: