Unentdeckte Programmfehler

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
amarganth
User
Beiträge: 8
Registriert: Dienstag 10. August 2004, 12:24
Wohnort: Bern

Unentdeckte Programmfehler

Beitragvon amarganth » Montag 30. August 2004, 11:58

Hi Leute

Ich programmiere in Python (2.2) erst seit kurzem. Also übt bitte Nachsicht, wenn ich "dummes" frage.

Mir ist aufgefallen, dass ich in einer relativ komplexen Klasse Programmfehler habe, die erst während der Laufzeit des Programms "entdeckt" werden. Beispiel:

Code: Alles auswählen

    def clip_Says(self, s):                     
        ....
        self.clip_SaysRepBot(s)
        ....

    def clip_SaysRepbot(self, s):             
        ....


Wegen des Fehlers in der Gross-/Kleinschreibung wird beim Durchlaufen des Codes ein Laufzeitfehler ausgegeben.

Von der Funktion "Check module" der IDLE würde ich eigentlich erwarten, dass sie solche Fehler entdeckt. Nota bene weiss ich nicht genau, was sie macht. Eine Beschreibung finde ich nicht.

Gibt es schlaue Möglichkeiten, diese versteckten Fehler zu finden?

Danke für jedweden Tipp.
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Montag 30. August 2004, 12:46

Hi amarganth,

dein Beispiel sollte, während der Laufzeit einen NameError erzeugen. Im Vorhinein kann Python so einen Fehler kaum erkennen, bei clip_SaysRepBot könnte es sich ja um eine Methode die erst in einer abgeleiteten Klasse definiert wird handeln. Der Fehler ist aber dann sehr leicht zu finden, dank der meist recht guten Fehlermeldungen von Python.


Gruß

Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Beitragvon Milan » Montag 30. August 2004, 17:00

Hi. Durchsuch mal das Forum mit dem Stichwort "pychecker" ... das ist ein Tool, das zumindest einige Sachen, die Problematisch werden könnten erkennen kann. Der Rest ist halt konzentrationsfrage, bzw auswerten der Fehlermeldungen. Eine Interpretersprache kann nunmal nicht wie ein Compiler alles vorhersagen, dazu ist sie (zum Glück) zu dynamisch :D .
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Montag 30. August 2004, 18:03

dafür gibts aber bei Python sogut wie nie einen Specherzugriffsfehler ;)


Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]