Was ist die ideale Länge für eine durschnittliche Pythonfunktion?
Das ist eine ähnliche Frage wie “was ist die ideale Schuhgröße für einen Mann”.
Antwort auf beide Fragen: Es hängt davon ab!
Eine ideale Größe lässt sich ohne weiteren Kontext nicht festlegen. Es ist meiner Ansicht nach auch nicht besonders hilfreich.
Ich treffe auch so selten “durchschnittliche Pythonfunktionen”.
Stattdessen sollte man darüber nachdenken, ab wann die Lesbarkeit einer Funktion leidet. In der Regel sagt man (nicht nur in Python), dass eine Funktion nicht länger als eine Bildschirmseite sein sollte. Wobei ich von alten ASCII-Terminals ausgehen würde mit 80x25 — das wären also 25 Zeilen.
Im Durchschnitt sollte man aber Funktionen und Methoden schon viel früher kürzen. Ab 10 Zeilen würde ich mir schon überlegen, ob ein Zerschneiden nicht sinnvoll sein könnte.
Ein weiteres Kriterium ist aber auch: Wiederholt sich ein Codeabschnitt (das kann schon eine Zeile oder weniger sein!) in dieser oder mehreren Funktionen im Projekt? Wenn ja, dann sollte man sich überlegen, diesen Codeabschnitt in eine eigene Funktion oder Methode auszulagern (Das ist das “Don’t repeat Yourself” Prinzip — kurz DRY). Also wären wir schon bei einzeiligen Funktionen!
Wenn ich eine Funktion habe, in welcher:
ich mich nicht wiederhole
die gleichzeitig übersichtlich genug ist (Kommentare sind willkommen, wo nötig)
nicht sinnvoll in Unterteile zergliedert werden kann
Dann darf sie auch mal etwas länger sein. Wenn aber einer der obigen Kriterien nicht zutrifft, sollte man sich überlegen, sie zu zerlegen.
Keine festen Längenangaben, keine Normgrößen für Männerschuhe.