|
|
@ -823,6 +823,21 @@ creature = Creature(Point(<span class="hljs-number">0</span>, <span class="hljs |
|
|
|
<pre><code class="python language-python hljs"><span class="hljs-meta">>>> </span>C.mro() |
|
|
|
[<<span class="hljs-class"><span class="hljs-title">class</span> '<span class="hljs-title">C</span>'>, <<span class="hljs-title">class</span> '<span class="hljs-title">A</span>'>, <<span class="hljs-title">class</span> '<span class="hljs-title">B</span>'>, <<span class="hljs-title">class</span> '<span class="hljs-title">object</span>'>] |
|
|
|
</span></code></pre> |
|
|
|
<h3 id="property">Property</h3> |
|
|
|
<pre><code class="python language-python hljs"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MyClass</span>:</span> |
|
|
|
<span class="hljs-meta"> @property</span> |
|
|
|
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">a</span><span class="hljs-params">(self)</span>:</span> |
|
|
|
<span class="hljs-keyword">return</span> self._a |
|
|
|
|
|
|
|
<span class="hljs-meta"> @a.setter</span> |
|
|
|
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">a</span><span class="hljs-params">(self, value)</span>:</span> |
|
|
|
self._a = value |
|
|
|
</code></pre> |
|
|
|
<pre><code class="python language-python hljs"><span class="hljs-meta">>>> </span>el = MyClass() |
|
|
|
<span class="hljs-meta">>>> </span>el.a = <span class="hljs-number">123</span> |
|
|
|
<span class="hljs-meta">>>> </span>el.a |
|
|
|
<span class="hljs-number">123</span> |
|
|
|
</code></pre> |
|
|
|
<h3 id="dataclass">Dataclass</h3> |
|
|
|
<p><strong>Decorator that automatically generates init(), repr() and eq() special methods.</strong></p> |
|
|
|
<pre><code class="python language-python hljs"><span class="hljs-keyword">from</span> dataclasses <span class="hljs-keyword">import</span> dataclass, field |
|
|
@ -867,10 +882,10 @@ creature = Creature(Point(<span class="hljs-number">0</span>, <span class="hljs |
|
|
|
</ul> |
|
|
|
<pre><code class="python language-python hljs"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MyHashable</span>:</span> |
|
|
|
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">__init__</span><span class="hljs-params">(self, a)</span>:</span> |
|
|
|
self.__a = copy.deepcopy(a) |
|
|
|
self._a = copy.deepcopy(a) |
|
|
|
<span class="hljs-meta"> @property</span> |
|
|
|
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">a</span><span class="hljs-params">(self)</span>:</span> |
|
|
|
<span class="hljs-keyword">return</span> self.__a |
|
|
|
<span class="hljs-keyword">return</span> self._a |
|
|
|
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">__eq__</span><span class="hljs-params">(self, other)</span>:</span> |
|
|
|
<span class="hljs-keyword">if</span> isinstance(other, type(self)): |
|
|
|
<span class="hljs-keyword">return</span> self.a == other.a |
|
|
|