Commit ef028cfa authored by Jochen Schulz's avatar Jochen Schulz
Browse files

fix hidden

parent d37ca461
......@@ -44,8 +44,7 @@ def is_prime(n):
```
```{code-cell}
:tags: ['hide-cell']
:tags: ["raises-exception"]
:tags: ['hide-cell', 'raises-exception']
import isprimefile
isprimfile.is_prime()
```
......
......@@ -30,6 +30,8 @@ print(variable)
```
```{code-cell}
:tags: ['hide-cell']
# `variable` wird zunächst gloabl definiert
# bei Aufruf der Funktion wird 'variable' ein neuer Wert im lokalen Scope der Funktion zugewiesen.
# nachdem die Funktion beendet ist, existiert dieser nicht mehr
......@@ -48,6 +50,7 @@ print(y)
```
```{code-cell}
:tags: ['hide-cell']
# Der Rückgabewert y ist im globalen Scope nicht mehr verfügbar, wenn ``average`` beendet ist.
# Stattdessen wird 'aus Versehen' die oben definierte Funktion ``y`` übergeben.
```
......@@ -59,6 +62,7 @@ typo(10)
```
```{code-cell}
:tags: ['hide-cell']
# Hier hat sich ein Tippfehler in variable eingeschlichen.
# Der an die Funktion übergebene Wert wird also nie verwendet.
# Zugriff auf Variablen sucht immer zunächst im lokalen Scope.
......@@ -123,6 +127,8 @@ print(t)
*Vorsicht:* Beim Erzeugen der Funktionen in einer `for`-Schleife referenzieren u.U. alle Funktionen *dieselbe* Loop-Variable und können daher unerwarteterweise identisch sein. Hier muss man sich Gedanken um den Scope machen.
```{code-cell}
:tags: ['hide-cell']
# So geht es nicht:
functions = [lambda x: x**n for n in range(2, 20, 2)]
......@@ -130,6 +136,7 @@ functions = [lambda x: x**n for n in range(2, 20, 2)]
```
```{code-cell}
:tags: ['hide-cell']
# Hilfs-Funktion, deren Hauptzweck das Erzeugen eines neuen Scopes ist,
# in dem `n` bei jedem Aufruf eine neue, separate Variable ist
......@@ -144,6 +151,7 @@ functions = [make_function(n) for n in range(2, 20, 2)]
```{code-cell}
:tags: ['hide-cell']
strings = ['x^{}'.format(n) for n in range(2, 20, 2)]
x = 2
......@@ -153,6 +161,7 @@ for s, f in zip(strings, functions):
```{code-cell}
:tags: ['hide-cell']
# Alternativer Trick: optionaler Parameter für lambda
functions = [lambda x, n=n: x**n for n in range(2, 20, 2)]
......@@ -162,6 +171,7 @@ functions = [lambda x, n=n: x**n for n in range(2, 20, 2)]
```{code-cell}
:tags: ['hide-cell']
# Alternativ mit partial
from functools import partial
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment