Python-Debugging: Protokollierung und PDF (Beispielanalyse 2)

乌拉乌拉~
Freigeben: 2018-08-23 13:38:08
Original
1354 Leute haben es durchsucht

Im vorherigen Artikel haben wir erfahren, warum Python debuggt werden muss, und zwei Methoden zum Debuggen von Python vorgestellt. Die Debugging-Methode kann jedoch nicht in einem Artikel erklärt werden, daher werden wir in diesem Artikel darüber sprechen verbleibende zwei Debugging-Methoden. Ich hoffe, dass diese Debugging-Methoden für Sie hilfreich sein können und Ihnen dabei helfen, schneller auf dem Weg zum Erlernen von Python voranzukommen.

Protokollierung

Die dritte Methode ist: Das Ersetzen von print () durch Protokollierung ist die dritte Methode. Im Vergleich zu Assert löst die Protokollierung keinen Fehler aus, und das kann der Fall sein Ausgabe in eine Datei:

import logging
s = '0'
n = int(s)
logging.info('n = %d' % n)
print(10 / n)
Nach dem Login kopieren

logging.info() kann einen Text ausgeben. Führen Sie es aus und finden Sie keine Informationen außer ZeroDivisionError. Was ist los?

Keine Sorge, fügen Sie nach der Importprotokollierung eine Konfigurationszeile hinzu und versuchen Sie es erneut:

import logging
logging.basicConfig(level=logging.INFO)
Nach dem Login kopieren

Siehe die Ausgabe:

$ python err.py
INFO:root:n = 0
Traceback (most recent call last):
  File "err.py", line 8, in <module>
    print(10 / n)
ZeroDivisionError: division by zero
Nach dem Login kopieren

Das ist der Vorteil der Protokollierung, sie ermöglicht Sie können Datensätze angeben. Die Informationsebenen umfassen Debug, Info, Warnung, Fehler usw. Wenn wir level=INFO angeben, funktioniert logging.debug nicht. Ebenso funktionieren Debug und Info nach der Angabe von level=WARNING nicht mehr. Auf diese Weise können Sie verschiedene Informationsebenen sicher ausgeben, ohne sie zu löschen, und schließlich steuern, welche Informationsebenen ausgegeben werden.

Ein weiterer Vorteil der Protokollierung besteht darin, dass durch einfache Konfiguration eine Anweisung gleichzeitig an verschiedene Orte ausgegeben werden kann, beispielsweise in die Konsole und in Dateien.

pdb

Die vierte Möglichkeit besteht darin, die Python-Debugger-PDB zu starten, das Programm im Einzelschrittmodus laufen zu lassen und zu überprüfen den laufenden Status jederzeit. Wir bereiten zunächst das Programm

# err.py
s = &#39;0&#39;
n = int(s)
print(10 / n)
Nach dem Login kopieren

vor und starten es dann:

$ python -m pdb err.py
> /Users/michael/Github/learn-python3/samples/debug/err.py(2)<module>()
-> s = &#39;0&#39;
Nach dem Login kopieren

Nach dem Start mit dem Parameter -m pdb sucht pdb den Code, der als nächstes ausgeführt werden soll -> 0' . Geben Sie den Befehl l ein, um den Code anzuzeigen:

 (Pdb) l
  1     # err.py
  2  -> s = &#39;0&#39;
  3     n = int(s)
  4     print(10 / n)
Nach dem Login kopieren

Geben Sie den Befehl n ein, um den Code schrittweise durchzugehen:

(Pdb) n
> /Users/michael/Github/learn-python3/samples/debug/err.py(3)<module>()
-> n = int(s)
(Pdb) n
> /Users/michael/Github/learn-python3/samples/debug/err.py(4)<module>()
-> print(10 / n)
Nach dem Login kopieren

Sie können jederzeit den Befehl p Variablenname eingeben, um die Variable anzuzeigen:

(Pdb) p s
&#39;0&#39;
(Pdb) p n
0
Nach dem Login kopieren

Geben Sie den Befehl q ein, um das Debuggen zu beenden und das Programm zu beenden:

(Pdb) q
Nach dem Login kopieren

(Diese Methode des Debuggens auf der Befehlszeile über pdb ist theoretisch allmächtig, aber in Wirklichkeit zu mühsam)

Das ist alles für diesen Artikel. Für alle im Artikel beschriebenen Inhalte stellt dieser Artikel hauptsächlich das relevante Wissen zum Python-Debugging vor. Ich hoffe, dass Sie die Informationen verwenden können, um den oben genannten Inhalt zu verstehen. Ich hoffe, dass das, was ich in diesem Artikel beschrieben habe, für Sie hilfreich ist und Ihnen das Erlernen von Python erleichtert.

Weitere Informationen zu diesem Thema finden Sie in der Spalte Python-Tutorial auf der chinesischen PHP-Website.

Das obige ist der detaillierte Inhalt vonPython-Debugging: Protokollierung und PDF (Beispielanalyse 2). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!