[Python-de] Nochmal super()

Thomas Fanslau tfanslau at gmx.de
Wed Sep 11 23:17:47 EDT 2002


Ich hab mir die Mails zu dem Thema jetzt noch mal durchgelesen. Gegen 
Ende wurde es dann ja noch richtig lehrreich. Und auch wenn ich aus 
meiner Entwicklungsgeschichte ein Problem damit habe zuzulassen, das 
beliebige Funktionen aufgerufen werden, kann ich vom technischen 
Standpunkt aus verstehen, das man sagen kann: Egal in welcher 
Reihenfolge und wo die Funktionen aufgerufen werden, das Endergebniss 
sollte dasselbe sein.

Nun, über das "sollte" bin ich heute gestolpert. Jemand, der mir zu 
arbeitet, hat seinen Code so optimiert, das er ein

if need2BeSaved:
     super(...).save()

eingefügt hat. Wurde der Teil nicht gespeichert wurden beim Laden 
automatisch Default-Werte gesetzt. So eine Art "CopyOnWrite". Natürlich 
hat er dem Rest von uns nichts davon gesagt (warum auch) und seine 
Tests, die die Klasse direkt testeten, liefen auch perfekt durch.

Beim Einbau ins Hauptsystem wurde aber plötzlich eine kleine, 
unbedeutende Basisklasse in einem ganz anderen Teil des Systems nicht 
mehr gespeichert. Also hat das Team mit steigender Beteiligung wohl 'ne 
Stunde rum debugged, bis sie mich geholt haben.

Also, Ergebnis des Ganzen: stehen 15 Klassen in der Klassenliste dann 
muss natürlich auch 15-mal super(...) aufgerufen werden, ansonsten 
fallen AM ENDE Klassen raus, werden nicht aufgerufen. Ohne Fehlermeldung.

Ich finde das nicht tolerierbar.

Sicherlich kann man jetzt argumentieren, das das hätte ganz anders 
gelöst werden müssen und das der Programmierer selber schuld ist. Würde 
ich auch für mich persönlich zustimmen. Aber in einem Team mit, sagen 
wir mal, gemischten Qualifikationen, unterschiedlichen Arbeitsstilen, 
unterschiedlichen Zeitvorgaben kann ich in der Integration der Module 
nicht damit leben, das solche Seiteneffekte auftreten ...

--tf





More information about the Python-de mailing list