Hallo Leute,
habe bisher noch nicht objektorientiert programmiert und relativ neu auf dem Gebiet.
Ist es erlaubt bzw. gängig eine Funktion innerhalb einer Methode zu erstellen?
Funktion innerhalb einer methode
Was meinst du damit? So etwas hier?
Wenn ja: das geht. Ob das gaengig ist, ist eine andere Frage, die viel mit Geschmack zu tun hat. Ich mache so etwas.
Code: Alles auswählen
class ...
def meine_methode(self, ...):
def lokale_funktion(...):
...
Das ist tatsächlich viel Geschmacksache. Ich vermeide das. In der Praxis stellt sich höchsten die Frage, wie kleinteilig Testcases ausfallen sollen, da lokal definierte Funktionen sich separaten Tests entziehen. Wenn man diese aber als Implementationsdetail der äußeren Methode ansieht, verliert dieses Argument viel an Relevanz. Problematisch wird es aus meiner Sicht, sobald lokale Funktionen in sich so komplex werden, dass sie besser doch separat getestet werden sollten.
Bis auf sehr kleine Funktionen, die zu groß für ein lambda sind, sollte man keine verschachtelten Funktionen definieren, weil sie nicht separat testbar sind. Das hat jetzt aber nichts direkt mit Objektorientierung zu tun.