Python Haltepunkt()
Die Funktion breakpoint() ist eine neue eingebaute Funktion, die in Python 3.7 eingeführt wurde. Das Debuggen von Python-Code war schon immer ein mühsamer Prozess, da eine enge Kopplung zwischen dem tatsächlichen Code und dem Debugging-Modulcode besteht. Zum Beispiel, wenn Sie den pdb-Debugger verwenden, müssen Sie pdb.set_trace() in Ihrem Programmcode aufrufen. Wenn Sie einen anderen Debugger verwenden möchten, sagen wir web-pdb, müssen Sie allen Code, der mit PDB zu tun hat, entfernen und die Methode web_pdb.set_trace() hinzufügen. Dies führt zu einem erheblichen Overhead bei der Verwendung des Python-Debuggers und macht den Python-Code schwer zu debuggen und zu warten. Deshalb hat Python 3.7 die Methode breakpoint() eingeführt, die es uns ermöglicht, lose gekoppelte Debugging-Codes zu schreiben.
Python Haltepunkt()
Die Python-Funktion breakpoint() ruft die Funktion sys.breakpointhook() auf. Standardmäßig ruft sys.breakpointhook() die Funktion pdb.set_trace() auf. Das bedeutet, dass die Verwendung von breakpoint() zumindest den Vorteil bietet, dass wir keinen pdb-Modul explizit importieren müssen, um einen Debugger zu verwenden. Schauen wir uns ein einfaches Beispiel für die Verwendung der breakpoint() Funktion an. Wir haben ein Python-Skript python_breakpoint_examples.py mit folgendem Code.
x = 10
y = 'Hi'
z = 'Hello'
print(y)
breakpoint()
print(z)
Wenn wir dieses Skript ausführen, öffnet sich die PDB-Debugger-Konsole.
$python3.7 python_breakpoint_examples.py
Hi
> /Users/pankaj/Documents/PycharmProjects/BasicPython/basic_examples/python_breakpoint_examples.py(8)()
-> print(z)
(Pdb) c
Hello
$
Python Haltepunkt() - Debugging anhalten
Die Python-Funktion sys.breakpointhook() verwendet die Umgebungsvariable PYTHONBREAKPOINT, um den Debugger zu konfigurieren. Wenn sie nicht gesetzt ist, wird der standardmäßige PDB-Debugger verwendet. Wenn sie auf „0“ gesetzt ist, wird die Funktion sofort zurückgegeben und es wird kein Code-Debugging durchgeführt. Es ist sehr hilfreich, wenn wir unseren Code ohne Debugging ausführen möchten.
$PYTHONBREAKPOINT=0 python3.7 python_breakpoint_examples.py
Hi
Hello
$
Python breakpoint() - Debugger-Modul ändern
Wir können die Umgebungsvariable PYTHONBREAKPOINT verwenden, um die Debugging-Methode bereitzustellen, die von der Funktion breakpoint() aufgerufen werden soll. Dies ist sehr hilfreich, da wir das Debugging-Modul problemlos ändern können, ohne den Code ändern zu müssen. Angenommen, wir möchten den web-pdb Debugger verwenden. Wir können ihn ganz einfach in unser Programm einhaken, indem wir PYTHONBREAKPOINT=web_pdb.set_trace verwenden. Zuerst sollten wir sicherstellen, dass web-pdb installiert ist. Sie können es mit dem Befehl pip3.7 install web-pdb installieren.
Laut der Web-PDB-Dokumentation ist es kompatibel mit der neuen breakpoint()-Funktion, die in Python 3.7 hinzugefügt wurde.
$PYTHONBREAKPOINT=web_pdb.set_trace python3.7 python_breakpoint_examples.py
Hi
2018-08-10 12:49:54,339: root - web_console:110 - CRITICAL - Web-PDB: starting web-server on pankaj:5555...
Öffnen Sie die im Konsolenprotokoll angegebene Web-Server-URL, und Sie werden das Debugger-Fenster wie im folgenden Bild sehen.
Zusammenfassung
Die Python breakpoint() Funktion ist eine sehr hilfreiche Ergänzung zum Python-Debugging-Feature. Es wird empfohlen, dies für das Debugging zu verwenden, damit Sie andere Drittanbieter-Debugger problemlos zur Laufzeit einhaken können. Außerdem bietet es eine einfache Möglichkeit, den Debugger zu deaktivieren und das Programm normal auszuführen.
Sie können weitere Python-Beispiele in unserem GitHub-Repository ansehen.
Referenz: Offizielle Dokumentation




