Die drei Ausdrücke für die Werte c, d, e könnte man wiederrum als Funktionen definieren. Immerhin gelten sie für sich eigenständig und können als solche getestet werden:
Code: Alles auswählen
def func_c(a, b):
return a * b
def func_d(a, b):
return a + b
def func_e(a, b):
return a - b
Code: Alles auswählen
>>> func_c(2, 3) == 6 # Expected: True
True
>>> func_d(2, 3) == 5 # Expected: True
True
>>> func_e(2, 3) == -1 # Expected: True
True
Funktionen sind ebenfalls Objekte und können z. B. wie andere Werte in Listen organisiert werden, über welche dann iteriert werden kann:
Code: Alles auswählen
>>> for f in [func_c, func_d, func_e]:
... print(f(2, 3))
...
6
5
-1
Ein tolles Werkzeug sind List-Comprehensions. Mit diesen tat ich mich am Anfang recht schwer, aber wenn man sie einmal verinnerlicht hat, will man sie nicht mehr missen:
Code: Alles auswählen
>>> [f(2, 3) for f in [func_c, func_d, func_e]]
[6, 5, -1]
Aber hier kommt es auch, wie bei Klassen, auf den Kontext und das Problem an. Probleme sollten so weit wie möglich auf Teilprobleme heruntergebrochen werden, welche sich isoliert testen lassen (zum Beispiel in der Python-Konsole).
"Du bist der Messias! Und ich muss es wissen, denn ich bin schon einigen gefolgt!"