nonlocal vermeiden

24/03/2013 - 17:32 von Jürgen K. Leese | Report spam
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
 

Lesen sie die antworten

#1 Bastian Blank
24/03/2013 - 18:03 | Warnen spam
Jürgen K. Leese wrote:
Hàsslich und schlecht. Aber wie mache ich sowas denn nun schön und gut,
ohne dabei denselben Code dutzendmal zu wiederholen?



Man macht ein Objekt. Und ausserdem haben File-Objekte schon einen
eigenen Status.

Bastian

Ähnliche fragen