Skip to content

Commit ce26eff

Browse files
committed
Refactor keyword only example
1 parent 785e451 commit ce26eff

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

notebooks/intermediate/html/idiomatic_misc1.html

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12626,7 +12626,8 @@ <h3 id="This-is-much-better!"><font color="green">This is much better!</font><a
1262612626
</div>
1262712627
<div class="inner_cell">
1262812628
<div class="text_cell_render border-box-sizing rendered_html">
12629-
<h3 id="Extra:-forcing-keyword-only-argument-usage-with-`*`"><font color="green">Extra: forcing keyword only argument usage with `*`</font><a class="anchor-link" href="#Extra:-forcing-keyword-only-argument-usage-with-`*`">&#182;</a></h3>
12629+
<h4 id="Extra:-keyword-only-arguments-after-`*`"><font color="green">Extra: keyword only arguments after `*`</font><a class="anchor-link" href="#Extra:-keyword-only-arguments-after-`*`">&#182;</a></h4><p>This might be useful for example if the signature of the function is likely to change in the future. For example, if there's even a slight chance that one of the arguments may be dropped during the future development, consider using <code>*</code>.</p>
12630+
1263012631
</div>
1263112632
</div>
1263212633
</div>
@@ -12635,14 +12636,14 @@ <h3 id="Extra:-forcing-keyword-only-argument-usage-with-`*`"><font color="green"
1263512636
<div class="prompt input_prompt">In&nbsp;[21]:</div>
1263612637
<div class="inner_cell">
1263712638
<div class="input_area">
12638-
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">show_person_details</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="o">*</span><span class="p">,</span> <span class="n">is_gangster</span><span class="p">,</span> <span class="n">is_hacker</span><span class="p">,</span> <span class="n">age</span><span class="p">):</span>
12639+
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">func_with_loads_of_args</span><span class="p">(</span><span class="n">arg1</span><span class="p">,</span> <span class="o">*</span><span class="p">,</span> <span class="n">arg2</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">arg3</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">arg4</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">arg5</span><span class="o">=</span><span class="s1">&#39;boom&#39;</span><span class="p">):</span>
1263912640
<span class="k">pass</span>
1264012641

12641-
<span class="c1"># This won&#39;t work anymore because only keyword arguments allowed after *</span>
12642-
<span class="c1"># show_person_details(&#39;John Doe&#39;, True, False, 83)</span>
12642+
<span class="c1"># This won&#39;t work because only keyword arguments allowed after *</span>
12643+
<span class="c1">#func_with_loads_of_args(&#39;John Doe&#39;, 1, 2)</span>
1264312644

1264412645
<span class="c1"># This is ok</span>
12645-
<span class="n">show_person_details</span><span class="p">(</span><span class="s1">&#39;John Doe&#39;</span><span class="p">,</span> <span class="n">is_gangster</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">is_hacker</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">age</span><span class="o">=</span><span class="mi">83</span><span class="p">)</span>
12646+
<span class="n">func_with_loads_of_args</span><span class="p">(</span><span class="s1">&#39;John Doe&#39;</span><span class="p">,</span> <span class="n">arg4</span><span class="o">=</span><span class="s1">&#39;foo&#39;</span><span class="p">,</span> <span class="n">arg5</span><span class="o">=</span><span class="s1">&#39;bar&#39;</span><span class="p">,</span> <span class="n">arg2</span><span class="o">=</span><span class="s1">&#39;foo bar&#39;</span><span class="p">)</span>
1264612647
</pre></div>
1264712648

1264812649
</div>

notebooks/intermediate/idiomatic_misc1.ipynb

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,8 @@
455455
"cell_type": "markdown",
456456
"metadata": {},
457457
"source": [
458-
"### <font color='green'>Extra: forcing keyword only argument usage with `*`</font>"
458+
"#### <font color='green'>Extra: keyword only arguments after `*`</font>\n",
459+
"This might be useful for example if the signature of the function is likely to change in the future. For example, if there's even a slight chance that one of the arguments may be dropped during the future development, consider using `*`."
459460
]
460461
},
461462
{
@@ -464,14 +465,14 @@
464465
"metadata": {},
465466
"outputs": [],
466467
"source": [
467-
"def show_person_details(name, *, is_gangster, is_hacker, age):\n",
468+
"def func_with_loads_of_args(arg1, *, arg2=None, arg3=None, arg4=None, arg5='boom'):\n",
468469
" pass\n",
469470
"\n",
470-
"# This won't work anymore because only keyword arguments allowed after *\n",
471-
"# show_person_details('John Doe', True, False, 83)\n",
471+
"# This won't work because only keyword arguments allowed after *\n",
472+
"#func_with_loads_of_args('John Doe', 1, 2)\n",
472473
"\n",
473474
"# This is ok\n",
474-
"show_person_details('John Doe', is_gangster=True, is_hacker=False, age=83)"
475+
"func_with_loads_of_args('John Doe', arg4='foo', arg5='bar', arg2='foo bar')"
475476
]
476477
},
477478
{

0 commit comments

Comments
 (0)