Skip to content

Commit 0a0ff2b

Browse files
make changes to the existing content
1 parent f2d1646 commit 0a0ff2b

File tree

9 files changed

+206
-199
lines changed

9 files changed

+206
-199
lines changed

Chapter1/class.ipynb

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -166,16 +166,14 @@
166166
"id": "58649bd2",
167167
"metadata": {},
168168
"source": [
169-
"Sometimes you might want different classes to use the same attributes and methods. But the implementation of those methods can be slightly different in each class.\n",
169+
"To ensure that all subclasses implement a set of methods and properties, use abstract methods within an abstract class. This promotes code reusability and a consistent interface across different implementations.\n",
170170
"\n",
171-
"A good way to implement this is to use abstract classes. An abstract class contains one or more abstract methods.\n",
172-
"\n",
173-
"An abstract method is a method that is declared but contains no implementation. The abstract method requires subclasses to provide implementations."
171+
"In the following code, Drink serves as an abstract class with an abstract method consume."
174172
]
175173
},
176174
{
177175
"cell_type": "code",
178-
"execution_count": 1,
176+
"execution_count": 2,
179177
"id": "3d560ac4",
180178
"metadata": {
181179
"ExecuteTime": {
@@ -188,34 +186,37 @@
188186
"name": "stdout",
189187
"output_type": "stream",
190188
"text": [
191-
"Pepper says: Woof\n",
192-
"Bella says: Meows\n"
189+
"Drinking English Breakfast tea...\n",
190+
"Drinking Tropical Blast smoothie...\n"
193191
]
194192
}
195193
],
196194
"source": [
197-
"from abc import ABC, abstractmethod \n",
195+
"from abc import ABC, abstractmethod\n",
198196
"\n",
199-
"class Animal(ABC):\n",
200197
"\n",
201-
" def __init__(self, name: str):\n",
202-
" self.name = name \n",
203-
" super().__init__()\n",
198+
"class Drink(ABC):\n",
199+
" def __init__(self, name, volume):\n",
200+
" self.name = name\n",
201+
" self.volume = volume\n",
202+
"\n",
203+
" @abstractmethod\n",
204+
" def consume(self):\n",
205+
" pass\n",
206+
"\n",
207+
"\n",
208+
"class Tea(Drink):\n",
209+
" def consume(self):\n",
210+
" print(f\"Drinking {self.name} tea...\")\n",
204211
"\n",
205-
" @abstractmethod \n",
206-
" def make_sound(self):\n",
207-
" pass \n",
208212
"\n",
209-
"class Dog(Animal):\n",
210-
" def make_sound(self):\n",
211-
" print(f'{self.name} says: Woof')\n",
213+
"class Smoothie(Drink):\n",
214+
" def consume(self):\n",
215+
" print(f\"Drinking {self.name} smoothie...\")\n",
212216
"\n",
213-
"class Cat(Animal):\n",
214-
" def make_sound(self):\n",
215-
" print(f'{self.name} says: Meows')\n",
216217
"\n",
217-
"Dog('Pepper').make_sound()\n",
218-
"Cat('Bella').make_sound()"
218+
"Tea(\"English Breakfast\", 250).consume()\n",
219+
"Smoothie(\"Tropical Blast\", 500).consume()"
219220
]
220221
},
221222
{

Chapter5/visualization.ipynb

Lines changed: 50 additions & 55 deletions
Large diffs are not rendered by default.

docs/Chapter1/class.html

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,7 @@
234234
<li class="toctree-l2"><a class="reference internal" href="../Chapter2/dataclasses.html">3.7. Data Classes</a></li>
235235
<li class="toctree-l2"><a class="reference internal" href="../Chapter2/typing.html">3.8. Typing</a></li>
236236
<li class="toctree-l2"><a class="reference internal" href="../Chapter2/pathlib.html">3.9. pathlib</a></li>
237+
<li class="toctree-l2"><a class="reference internal" href="../Chapter2/pydantic.html">3.10. Pydantic</a></li>
237238
</ul>
238239
</li>
239240
<li class="toctree-l1 has-children"><a class="reference internal" href="../Chapter3/Chapter3.html">4. Pandas</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-4"><i class="fa-solid fa-chevron-down"></i></label><ul>
@@ -625,39 +626,41 @@ <h2><span class="section-number">2.6.1. </span>Inheritance in Python<a class="he
625626
</section>
626627
<section id="abstract-classes-declare-methods-without-implementation">
627628
<h2><span class="section-number">2.6.2. </span>Abstract Classes: Declare Methods without Implementation<a class="headerlink" href="#abstract-classes-declare-methods-without-implementation" title="Permalink to this heading">#</a></h2>
628-
<p>Sometimes you might want different classes to use the same attributes and methods. But the implementation of those methods can be slightly different in each class.</p>
629-
<p>A good way to implement this is to use abstract classes. An abstract class contains one or more abstract methods.</p>
630-
<p>An abstract method is a method that is declared but contains no implementation. The abstract method requires subclasses to provide implementations.</p>
629+
<p>To ensure that all subclasses implement a set of methods and properties, use abstract methods within an abstract class. This promotes code reusability and a consistent interface across different implementations.</p>
630+
<p>In the following code, Drink serves as an abstract class with an abstract method consume.</p>
631631
<div class="cell docutils container">
632632
<div class="cell_input docutils container">
633-
<div class="highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">abc</span> <span class="kn">import</span> <span class="n">ABC</span><span class="p">,</span> <span class="n">abstractmethod</span>
633+
<div class="highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">abc</span> <span class="kn">import</span> <span class="n">ABC</span><span class="p">,</span> <span class="n">abstractmethod</span>
634634

635-
<span class="k">class</span> <span class="nc">Animal</span><span class="p">(</span><span class="n">ABC</span><span class="p">):</span>
636635

637-
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>
638-
<span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
639-
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">()</span>
636+
<span class="k">class</span> <span class="nc">Drink</span><span class="p">(</span><span class="n">ABC</span><span class="p">):</span>
637+
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">volume</span><span class="p">):</span>
638+
<span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
639+
<span class="bp">self</span><span class="o">.</span><span class="n">volume</span> <span class="o">=</span> <span class="n">volume</span>
640+
641+
<span class="nd">@abstractmethod</span>
642+
<span class="k">def</span> <span class="nf">consume</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
643+
<span class="k">pass</span>
644+
645+
646+
<span class="k">class</span> <span class="nc">Tea</span><span class="p">(</span><span class="n">Drink</span><span class="p">):</span>
647+
<span class="k">def</span> <span class="nf">consume</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
648+
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Drinking </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2"> tea...&quot;</span><span class="p">)</span>
640649

641-
<span class="nd">@abstractmethod</span>
642-
<span class="k">def</span> <span class="nf">make_sound</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
643-
<span class="k">pass</span>
644650

645-
<span class="k">class</span> <span class="nc">Dog</span><span class="p">(</span><span class="n">Animal</span><span class="p">):</span>
646-
<span class="k">def</span> <span class="nf">make_sound</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
647-
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1"> says: Woof&#39;</span><span class="p">)</span>
651+
<span class="k">class</span> <span class="nc">Smoothie</span><span class="p">(</span><span class="n">Drink</span><span class="p">):</span>
652+
<span class="k">def</span> <span class="nf">consume</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
653+
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Drinking </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2"> smoothie...&quot;</span><span class="p">)</span>
648654

649-
<span class="k">class</span> <span class="nc">Cat</span><span class="p">(</span><span class="n">Animal</span><span class="p">):</span>
650-
<span class="k">def</span> <span class="nf">make_sound</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
651-
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1"> says: Meows&#39;</span><span class="p">)</span>
652655

653-
<span class="n">Dog</span><span class="p">(</span><span class="s1">&#39;Pepper&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">make_sound</span><span class="p">()</span>
654-
<span class="n">Cat</span><span class="p">(</span><span class="s1">&#39;Bella&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">make_sound</span><span class="p">()</span>
656+
<span class="n">Tea</span><span class="p">(</span><span class="s2">&quot;English Breakfast&quot;</span><span class="p">,</span> <span class="mi">250</span><span class="p">)</span><span class="o">.</span><span class="n">consume</span><span class="p">()</span>
657+
<span class="n">Smoothie</span><span class="p">(</span><span class="s2">&quot;Tropical Blast&quot;</span><span class="p">,</span> <span class="mi">500</span><span class="p">)</span><span class="o">.</span><span class="n">consume</span><span class="p">()</span>
655658
</pre></div>
656659
</div>
657660
</div>
658661
<div class="cell_output docutils container">
659-
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Pepper says: Woof
660-
Bella says: Meows
662+
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Drinking English Breakfast tea...
663+
Drinking Tropical Blast smoothie...
661664
</pre></div>
662665
</div>
663666
</div>

0 commit comments

Comments
 (0)