Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Python

Python-Debugger:Verbessern Sie mühelos Ihre Debug-Fähigkeiten

Das Debuggen von Python-Code läuft für viele von uns darauf hinaus, print-Anweisungen hinzuzufügen und zu versuchen, basierend auf der Ausgabe zu begründen, was vor sich geht. Es ist nicht ideal, aber aus irgendeinem Grund wollen die Leute den Python-Debugger einfach nicht anfassen.

Inhaltsverzeichnis

Drucken zum Debuggen von Code verwenden

Wenn Sie zu den Personen gehören, die print verwenden zum Debuggen:Ich verurteile Sie nicht . Python zu lernen ist schwer. Programmieren ist schwer. Das Leben ist hart. Ich verstehe, dass das Lernen einer weiteren Sache ermüdend erscheint, wenn Sie bereits Probleme haben. Und das Hinzufügen dieser Druckanweisung zu Ihrem Code … es ist einfach einfacher. Kleines Geständnis:Ich mache es auch immer noch. Es ist nicht so schlimm, wie manche es scheinen lassen.

Trotzdem werde ich Ihnen einen kleinen Trick beibringen, der genauso einfach ist wie das Hinzufügen von Druckanweisungen zu Ihrem Code. Dieser Trick verleiht Ihnen jedoch unendliche Debugging-Möglichkeiten und ermöglicht es Ihnen, die Welt zu erobern, falls dies erforderlich sein sollte.

Festlegen eines Python-Debugger-Haltepunkts

Sie benötigen keine IDE, um Ihren Code ordnungsgemäß zu debuggen. Dieser Trick funktioniert immer, selbst im einfachsten Editor und sogar in Jupyter Notebooks.

Der Trick besteht darin, mit der Anweisung breakpoint() einen sogenannten Breakpoint zu setzen . Sie können es in Ihren Code einfügen, unabhängig davon, welchen Editor oder welche IDE Sie verwenden, an der Stelle, an der Sie normalerweise diese lästige Druckanweisung einfügen würden.

Was passiert also, wenn Sie dies tun? Lass es uns herausfinden! Erstellen Sie ein einfaches Programm wie das folgende:

def add_two(x):
    return x + 2
for i in range(1, 10):
    a = add_two(i)
    breakpoint()
    print(a)

Wenn Sie dies ausführen, und es spielt keine Rolle, ob Sie dies in der REPL, über die Befehlszeile oder in Ihrer IDE tun, werden Sie in den Python-Debugger namens PDB versetzt. Aber was nun?

Verwendung des Python-Debuggers

Wenn ich das obige kleine Programm starte, passiert Folgendes:

$ python3 breakpointing.py
> /home/erik/breakpointing.py(7)<module>()
-> print(a)
(Pdb)_

Hier gibt es ein paar Dinge zu sehen:

Der Python-Debugger ist eigentlich eine voll funktionsfähige Python-Shell, genau wie die REPL.

An dieser Stelle können wir die aktuelle Umgebung untersuchen. Mal sehen, was der Wert von a ist ist gerade:

(Pdb) print(a)
3
(Pdb) print(i)
1

Anstelle von print können Sie auch den pdb-spezifischen Befehl p verwenden, etwa so:

(Pdb) p a
3
(Pdb_ p i
1

Nächste Zeile ausführen

Was also, wenn wir die nächste Codezeile ausführen wollen? Es gibt zwei Möglichkeiten:

Zur Verdeutlichung:step tritt glücklich in einen Funktionsaufruf ein und bricht innerhalb dieser Funktion ab. Im Gegensatz dazu next führt die Funktion aus, bis sie zurückkehrt, und bricht in der nächsten Zeile ab.

Andere Debugger und IDEs nennen dies auch „step into“ (statt step) und „step over“ (statt next).

Lassen Sie uns nun diese beiden verwenden:

$ python3 breakpointing.py
-> print(a)
(Pdb) s
3
-> for i in range(1, 10):
(Pdb) s
-> a = add_two(i)
(Pdb) n
-> breakpoint()
(Pdb) n
-> print(a)
(Pdb) n
4
-> for i in range(1, 10):
(Pdb) s
-> a = add_two(i)
(Pdb) s
--Call--
-> def add_two(x):
(Pdb) s
-> return x + 2
(Pdb) s
--Return--
5
-> return x + 2
(Pdb) s
-> breakpoint()
(Pdb)

Wie Sie sehen können, gehen wir zunächst über den Aufruf von add_two mit n . Beim zweiten Mal steigen wir mit s in die Funktion ein .

Python-Debugger-Befehle

Es gibt weitere Befehle, die Sie selbst ausprobieren können. Ich werde sie nicht alle auflisten, nur die nützlichsten:

Die vollständige Dokumentation finden Sie auf der Python-Debugger-Seite, auf der alle Befehle aufgelistet sind.

Weiter lernen

Obwohl dies sehr praktisch sein kann, lohnt es sich, in den Debugger einzutauchen, den Ihre IDE bietet. Wenn Sie ein VSCode-Benutzer sind, habe ich ein Tutorial zum Debuggen von Python-Code in VSCode geschrieben.


Python

  1. Python-Eingabe, -Ausgabe und -Import
  2. Python Print()-Anweisung:Drucken mit Beispielen
  3. Python-Strings:Ersetzen, Verbinden, Teilen, Umkehren, Groß- und Kleinbuchstaben
  4. Python time.sleep():Verzögerung zu Ihrem Code hinzufügen (Beispiel)
  5. Python New Line:So drucken Sie OHNE Newline in Python
  6. Verbundene Flotten verbessern Ihr Endergebnis
  7. Wie Prototypen Ihren Fertigungsprozess verbessern
  8. 5 Möglichkeiten zur Verbesserung Ihrer Blechteile
  9. 3 Tipps zur Verbesserung Ihres Gerätewartungsplans
  10. Tipps und Überlegungen:Lernen Sie, Ihre PCB-Designfähigkeiten zu verbessern