Skip to content

Commit 4df5314

Browse files
committed
Add __str__ example
1 parent 939bb62 commit 4df5314

File tree

2 files changed

+82
-7
lines changed

2 files changed

+82
-7
lines changed

notebooks/beginner/classes.ipynb

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,32 @@
100100
" "
101101
]
102102
},
103+
{
104+
"cell_type": "markdown",
105+
"metadata": {},
106+
"source": [
107+
"### `__str__()`\n",
108+
"`__str__()` is a special method which is called when an instance of the class is converted to string (e.g. when you want to print the instance). In other words, by defining `__str__` method for your class, you can decide what's the printable version of the instances of your class. The method should return a string."
109+
]
110+
},
111+
{
112+
"cell_type": "code",
113+
"execution_count": null,
114+
"metadata": {},
115+
"outputs": [],
116+
"source": [
117+
"class Person:\n",
118+
" def __init__(self, name, age):\n",
119+
" self.name = name\n",
120+
" self.age = age\n",
121+
" \n",
122+
" def __str__(self):\n",
123+
" return 'Person: {}'.format(self.name)\n",
124+
" \n",
125+
"jack = Person('Jack', 82)\n",
126+
"print('This is the string presentation of jack: {}'.format(jack))"
127+
]
128+
},
103129
{
104130
"cell_type": "markdown",
105131
"metadata": {},

notebooks/beginner/html/classes.html

Lines changed: 56 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11846,7 +11846,7 @@ <h1 id="Classes"><a href="https://docs.python.org/3/tutorial/classes.html#a-firs
1184611846

1184711847

1184811848
<div class="output_subarea output_stream output_stdout output_text">
11849-
<pre>my_intance: &lt;__main__.MyFirstClass object at 0x106a164a8&gt;
11849+
<pre>my_intance: &lt;__main__.MyFirstClass object at 0x106918550&gt;
1185011850
type: &lt;class &#39;__main__.MyFirstClass&#39;&gt;
1185111851
my_instance.name: John Doe
1185211852
</pre>
@@ -12000,14 +12000,63 @@ <h3 id="__init__()"><code>__init__()</code><a class="anchor-link" href="#__init_
1200012000
</div>
1200112001
<div class="inner_cell">
1200212002
<div class="text_cell_render border-box-sizing rendered_html">
12003-
<h2 id="Class-variables-vs-instance-variables">Class variables vs instance variables<a class="anchor-link" href="#Class-variables-vs-instance-variables">&#182;</a></h2><p>Class variables are shared between all the instances of that class whereas instance variables can hold different values between different instances of that class.</p>
12003+
<h3 id="__str__()"><code>__str__()</code><a class="anchor-link" href="#__str__()">&#182;</a></h3><p><code>__str__()</code> is a special method which is called when an instance of the class is converted to string (e.g. when you want to print the instance). In other words, by defining <code>__str__</code> method for your class, you can decide what's the printable version of the instances of your class. The method should return a string.</p>
1200412004

1200512005
</div>
1200612006
</div>
1200712007
</div>
1200812008
<div class="cell border-box-sizing code_cell rendered">
1200912009
<div class="input">
1201012010
<div class="prompt input_prompt">In&nbsp;[6]:</div>
12011+
<div class="inner_cell">
12012+
<div class="input_area">
12013+
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">class</span> <span class="nc">Person</span><span class="p">:</span>
12014+
<span class="k">def</span> <span class="nf">__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">age</span><span class="p">):</span>
12015+
<span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
12016+
<span class="bp">self</span><span class="o">.</span><span class="n">age</span> <span class="o">=</span> <span class="n">age</span>
12017+
12018+
<span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
12019+
<span class="k">return</span> <span class="s1">&#39;Person: </span><span class="si">{}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
12020+
12021+
<span class="n">jack</span> <span class="o">=</span> <span class="n">Person</span><span class="p">(</span><span class="s1">&#39;Jack&#39;</span><span class="p">,</span> <span class="mi">82</span><span class="p">)</span>
12022+
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;This is the string presentation of jack: </span><span class="si">{}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">jack</span><span class="p">))</span>
12023+
</pre></div>
12024+
12025+
</div>
12026+
</div>
12027+
</div>
12028+
12029+
<div class="output_wrapper">
12030+
<div class="output">
12031+
12032+
12033+
<div class="output_area">
12034+
12035+
<div class="prompt"></div>
12036+
12037+
12038+
<div class="output_subarea output_stream output_stdout output_text">
12039+
<pre>This is the string presentation of jack: Person: Jack
12040+
</pre>
12041+
</div>
12042+
</div>
12043+
12044+
</div>
12045+
</div>
12046+
12047+
</div>
12048+
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
12049+
</div>
12050+
<div class="inner_cell">
12051+
<div class="text_cell_render border-box-sizing rendered_html">
12052+
<h2 id="Class-variables-vs-instance-variables">Class variables vs instance variables<a class="anchor-link" href="#Class-variables-vs-instance-variables">&#182;</a></h2><p>Class variables are shared between all the instances of that class whereas instance variables can hold different values between different instances of that class.</p>
12053+
12054+
</div>
12055+
</div>
12056+
</div>
12057+
<div class="cell border-box-sizing code_cell rendered">
12058+
<div class="input">
12059+
<div class="prompt input_prompt">In&nbsp;[7]:</div>
1201112060
<div class="inner_cell">
1201212061
<div class="input_area">
1201312062
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">class</span> <span class="nc">Example</span><span class="p">:</span>
@@ -12074,7 +12123,7 @@ <h2 id="Public-vs-private">Public vs private<a class="anchor-link" href="#Public
1207412123
</div>
1207512124
<div class="cell border-box-sizing code_cell rendered">
1207612125
<div class="input">
12077-
<div class="prompt input_prompt">In&nbsp;[7]:</div>
12126+
<div class="prompt input_prompt">In&nbsp;[8]:</div>
1207812127
<div class="inner_cell">
1207912128
<div class="input_area">
1208012129
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">class</span> <span class="nc">Person</span><span class="p">:</span>
@@ -12104,7 +12153,7 @@ <h2 id="Public-vs-private">Public vs private<a class="anchor-link" href="#Public
1210412153
</div>
1210512154
<div class="cell border-box-sizing code_cell rendered">
1210612155
<div class="input">
12107-
<div class="prompt input_prompt">In&nbsp;[8]:</div>
12156+
<div class="prompt input_prompt">In&nbsp;[9]:</div>
1210812157
<div class="inner_cell">
1210912158
<div class="input_area">
1211012159
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">class</span> <span class="nc">Person</span><span class="p">:</span>
@@ -12156,7 +12205,7 @@ <h2 id="Public-vs-private">Public vs private<a class="anchor-link" href="#Public
1215612205
</div>
1215712206
<div class="cell border-box-sizing code_cell rendered">
1215812207
<div class="input">
12159-
<div class="prompt input_prompt">In&nbsp;[9]:</div>
12208+
<div class="prompt input_prompt">In&nbsp;[10]:</div>
1216012209
<div class="inner_cell">
1216112210
<div class="input_area">
1216212211
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">class</span> <span class="nc">Person</span><span class="p">:</span>
@@ -12208,7 +12257,7 @@ <h2 id="Introduction-to-inheritance">Introduction to inheritance<a class="anchor
1220812257
</div>
1220912258
<div class="cell border-box-sizing code_cell rendered">
1221012259
<div class="input">
12211-
<div class="prompt input_prompt">In&nbsp;[10]:</div>
12260+
<div class="prompt input_prompt">In&nbsp;[11]:</div>
1221212261
<div class="inner_cell">
1221312262
<div class="input_area">
1221412263
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">class</span> <span class="nc">Animal</span><span class="p">:</span>
@@ -12238,7 +12287,7 @@ <h2 id="Introduction-to-inheritance">Introduction to inheritance<a class="anchor
1223812287
</div>
1223912288
<div class="cell border-box-sizing code_cell rendered">
1224012289
<div class="input">
12241-
<div class="prompt input_prompt">In&nbsp;[11]:</div>
12290+
<div class="prompt input_prompt">In&nbsp;[12]:</div>
1224212291
<div class="inner_cell">
1224312292
<div class="input_area">
1224412293
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">dog</span> <span class="o">=</span> <span class="n">Dog</span><span class="p">()</span>

0 commit comments

Comments
 (0)