
Hallo,
ich bin gerade über die etwas sehr schräge Behandlung von lokalen Variablen gestolpert. Daran lässt sich natürlich nichts ändern, die Frage ist, wie mache ich Folgendes besser?
In einer Funktion, die irgendwas zeilenweise ausliest, habe ich diese Hilfsfunktion definiert:
def holezeile(): nonlocal zeile, zeilennummer zeile = zeilevonirgendwoeinlesen() zeilennummer += 1
In der übergeordneten Funktion, die zeile und zeilennummer verwurstet, wird holezeile() an gut einem Dutzend Stellen aufgerufen - daher die vergesslichkeitsfehlersichere Stütze mit holezeile(). Sollte ich an holezeile() mal etwas ändern wollen, möchte ich das nicht an einem Dutzend Stellen machen müssen.
Die nonlocal-Zeile finde ich hässlich, und diejenigen, die sich den Kram ausgedacht haben, sollen wohl der Meinung sein, der Zugriff auf übergeordnete Variablen wäre eh schlechter Stil.
Hässlich und schlecht. Aber wie mache ich sowas denn nun schön und gut, ohne dabei denselben Code dutzendmal zu wiederholen?
Herzlichen Dank für Einblicke, Jürgen