[Python-de] Funktionsaufruf im event handler

Diez Roggisch deets at web.de
Di Sep 10 16:31:40 CEST 2013


> Hallo,
>  
> Besserung geloben unsere Politiker auch immerŠ es gaebe ne Menge zu sagen,
> aber du magst ja nix davon hoeren. Es bestaende die Gefahr, zum besseren
> Programmierer zu             werdenŠ
> 
>  
> Der Code besteht schon länger und ich habe ihn nicht extra an die Coding
> Richtlinie angepasst. Coding Richtlinien gibt es wie Sand am mehr (vielleicht
> nicht für Python) deshalb zu behaupten dass der, der eine andere Richtlinie
> benutzt ein schlechter Programmierer ist finde ich etwas kurzsichtig.

Wo habe ich das denn behauptet? Coding-Richtlinien haben nichts per se mit
der Qualitaet von Code zu tun, sondern mit der Kommunikation ueber Code. Und
eben diese wird durch eine solche Richtlinie vereinfacht.

Aber genau das ist der Knackpunkt. Du willst, das wir ueber deinen Code
reden. Aber bitte nur so, wie du dir das vorstellst, und gefaelligst nicht
ueber Dinge, die dir nicht unmittelbar weiterhelfen. Zumindest das ist das,
was bei mir bei so einer Anforderung mitschwingt.

Und in Python reden wir ueblicherweise auch "nur" ueber PEP8, und nicht
ueber beliebig viele ander Konventionen. Und die ist noch nicht mal
besonders umfangreich oder schwierig zu implementieren.


>  
> Im Übrigen gibt es in dem Eventhandler nur einen selbst definierten
> Funktionsaufruf nämlich update_instruments().
> Die Definition der Methode kommt gleich am Anschluss an den Eventhandler. Und
> ich will nicht das ihr mir das zum laufen bringt. Es geht mir vor allem darum
> es besser zu machen,  bevor ich den Inhalt der Funktionen update_instruments()
> und add_instrument dort einfach reinschreibe. Auch vor dem Hintergrund ein
> besserer Programmierer zu werden J

Nochmal: das steht da nirgends, dass das der Aspekt ist, der nicht
funktioniert. Das mag man mit viel Muehe erraten, aber es ist nicht klar.
Ein Kommentar wie "hier krachts mit folgender Exception" oder aehnliches
hilft. 

Und in dem Moment, wo du diese Zusatzinfo gibst, kann man auch gleich was
dazu sagen: dein "try: except:" ist (ganz generell, und das ist eine
Konvention, ueber die nicht zu reden du dir ja ausbedungen hast) ein
schlechte Idee. Weil es zB Programmierfehler maskiert, die man gemacht hat,
statt explizit Ausnahmen zu behandeln, die aus dem Anwendungscode kommen
koennen.

Wie es in PEP8 steht:

"""
When catching exceptions, mention specific exceptions whenever possible
instead of using a bare except: clause.

For example, use:

try:
    import platform_specific_module
except ImportError:
    platform_specific_module = None
A bare except: clause will catch SystemExit and KeyboardInterrupt
exceptions, making it harder to interrupt a program with Control-C, and can
disguise other problems. If you want to catch all exceptions that signal
program errors, use except Exception: (bare except is equivalent to except
BaseException:).

A good rule of thumb is to limit use of bare 'except' clauses to two cases:

If the exception handler will be printing out or logging the traceback; at
least the user will be aware that an error has occurred.
If the code needs to do some cleanup work, but then lets the exception
propagate upwards with raise. try...finally can be a better way to handle
this case.
"""

Und ich vermute mal stark, das dein Problem da liegt.

Aber ­ wollteste ja nicht wissenŠ

>  
> Für Kritik wie man es besser machen kann bin ich immer offen. Es sollte sich
> halt nicht darauf beschränken ob mit einer Variablen nun klein oder groß
> begonnen wird oder Unterstriche zu setzen sind oder nicht.

Und selbst wenn's nur das waere ­ dann ignorier das halt. Oder nimm mit,
dass es hier hilft, deinen Code so zu praesentieren, dass er formell
gewissen Anspruechen genuegt. Aber Leuten, die dir freiwillig helfen sollen,
Vorschriften darueber zu machen, wie sie das gefaelligst zu tun haben ­ das
finde ich persoenlich zumindest ein bisschen anmassend.


Diez


-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://mail.python.org/pipermail/python-de/attachments/20130910/b9f57a3e/attachment-0001.html>


Mehr Informationen über die Mailingliste python-de