Seite 1 von 1

Haben Zeilennummern eine Variable?

Verfasst: Mittwoch 18. März 2020, 18:34
von Bill987654321
Um Fehler leichter zu finden, lasse ich mir "Bemerkungen" mit Zeilennummern auf dem Bildschirm anzeigen. Ich habe feste Zeilennummern (26 und 27) angegeben. Leider ändern sich die Zeilennummern häufig, weil neue Zeilen hinzukommen. Haben Zeilennummern eine Variable, die ich anstelle der festen Zeilennummern eingeben könnte?

Code: Alles auswählen

print("Dies ist Zeile 26. In Zeile 27 wird (Type(i)) angezeigt") 

Re: Haben Zeilennummern eine Variable?

Verfasst: Mittwoch 18. März 2020, 18:40
von nezzcarth
Ich wüsste nicht, dass das in der Form in Python möglich wäre (wenn überhaupt nur, in dem man tief in die Trickkiste greift). Generell halte ich das auch für ein ungewöhnliches Vorgehen, selbst wenn es ginge. Für Debugging-Zwecke kann man die Stepfunktion eines Debuggers verwenden (habe ich bei Python noch nie gemacht, aber pdb kann das wohl). Und um den Kontext eines Fehlers, den du zur Laufzeit entdeckt hast, zu sehen, kannst du ja eine Ausnahme auslösen.

Re: Haben Zeilennummern eine Variable?

Verfasst: Mittwoch 18. März 2020, 18:43
von Sirius3
Python kennt Exceptions für Fehlerbehandlung. Dazu gibt es einen Traceback der Zeilennummern enthält. Was willst Du denn mit dem `print` bewirken?

Re: Haben Zeilennummern eine Variable?

Verfasst: Mittwoch 18. März 2020, 18:49
von Bill987654321
Sirius3 hat geschrieben: Mittwoch 18. März 2020, 18:43 Python kennt Exceptions für Fehlerbehandlung. Dazu gibt es einen Traceback der Zeilennummern enthält. Was willst Du denn mit dem `print` bewirken?
Ich behalte so den Überblick.

Re: Haben Zeilennummern eine Variable?

Verfasst: Mittwoch 18. März 2020, 18:51
von Bill987654321
nezzcarth hat geschrieben: Mittwoch 18. März 2020, 18:40 Ich wüsste nicht, dass das in der Form in Python möglich wäre (wenn überhaupt nur, in dem man tief in die Trickkiste greift). Generell halte ich das auch für ein ungewöhnliches Vorgehen, selbst wenn es ginge. Für Debugging-Zwecke kann man die Stepfunktion eines Debuggers verwenden (habe ich bei Python noch nie gemacht, aber pdb kann das wohl). Und um den Kontext eines Fehlers, den du zur Laufzeit entdeckt hast, zu sehen, kannst du ja eine Ausnahme auslösen.
Danke für die Antwort. Werde mal die Stepfunktion suchen und ausprobieren. :D

Re: Haben Zeilennummern eine Variable?

Verfasst: Mittwoch 18. März 2020, 18:54
von Sirius3
Ich verstehe nicht, welchen Überblick Du behalten willst? Kannst Du mal einen vollständigen Beispielcode posten.

Re: Haben Zeilennummern eine Variable?

Verfasst: Mittwoch 18. März 2020, 19:03
von __deets__
Es geht schon, man kann sich das mit dem inspect-Modul basteln. Aber das ist relativ teuer (kompletten stackframe abgrasen). Ich wuerde mich da einfach umgewoehnen. Keine Zeilennummern koennen auch nicht falsch sein. Aussagekraeftigere Namen/Beschreibungen helfen mehr.

Re: Haben Zeilennummern eine Variable?

Verfasst: Mittwoch 18. März 2020, 19:28
von __blackjack__
Ich persönlich mag ja das q-Modul für quick'n'dirty debugging.

Ansonsten ist `print()` für so etwas manchmal ganz praktisch für Kleinigkeiten aber besser ist Logging. Da kann man sich auch Modulname, Funktionsname, und Zeilennummer ausgeben lassen und die Debug-Ausgaben auch einfach wieder ausschalten ohne den Code dafür entfernen zu müssen in dem man das Log-Level höher als DEBUG setzt. Wenn es auch ein externes Modul sein darf, ist `loguru` ganz nett. Es gibt schon voreingestellt noch zusätzlich die Level TRACE und SUCCESS und aussagekräftigere Tracebacks bei denen versucht wird auch die an dem Ausdruck beteiligten Werte anzuzeigen. Und bunt ist das auf der Konsole auch noch.