Goswin hat geschrieben:Attribute moechte ich gerne verbieten, weil ich mich oft falsch erinnere, welchen Abkürzung ich vor 6 Monaten für einen Begriff ausgewählt habe, und auf falsche Variablen so bald und so kategorisch wie möglich aufmerksam gemacht werden möchte.
Hallo Goswin!
Die Lösung deiner Probleme. WingIDE
http://wingware.com/. WingIDE hat die beste Codevervollständigung für Python, die ich kenne. Beim Arbeiten mit WingIDE listet es dir z.B. sofort alle Attribute einer Klasse auf. Und wenn ein Attribut, das du eingibst, nicht aufgelistet wird, dann gibt es dieses Ding nicht. Also kannst du schon beim Eingeben des Codes darauf reagieren. Ohne WingIDE würde ich sicher nicht Python programmieren. Ich wäre nur ein Viertel so produktiv. Und wenn du wirklich so bist wie du dich gibst, dann zahlt es sich doppelt und dreifach aus, in WingIDE ein paar Euro zu investieren.
Weiters kannst du mit WingIDE deinen Code sehr komfortabel Schritt für Schritt debuggen.
Ich bin so einer, der nach ein paar Tagen schon nicht mehr weiß, was er in welchem Modul, in welcher Klasse und wie programmiert hat. Ohne eine gute IDE wäre ich komplett aufgeschmissen. Und viele machen den Fehler, dass sie nichts in eine funktionierende IDE für Python investieren. Und dann wundern sie sich, warum sie nicht so schnell auf eine Lösung kommen. Ich wäre *auch* langsam, wenn ich auf die API-Beschreibungen von Modulen angewiesen wäre, anstatt schon während dem Schreiben, Hilfe und Hinweise zu den aktuellen Funktionen und Methoden zu bekommen.
Ich habe auch am Anfang versucht, mit __slots__ die Falschschreibung von Attributnamen zu verhindern. Aber es ist nur ein Workarround, der dich mehr und mehr Zeit kostet, je größer dein Programm wird. Jede kleine Variable, die du an die Klasseninstanz binden willst, musst du während dem Programmieren in die __slots__-Liste nachtragen. Das wird immer umständlicher und umständlicher je größer deine Klassen werden. --> Vergiss es. Verlass dich lieber auf WingIDE, eine bewährte IDE mit der besten Codevervollständigung, die es für Python gibt.
mfg
Gerold
PS: Und auf diesen Beitrag hin, erwarte ich mir, dass ich die nächste WingIDE-Release gratis bekomme.
Haaaalllooo Wingware! Hört ihr mich?