Heim Backend-Entwicklung Python-Tutorial Python-Debugging: Protokollierung und PDF (Beispielanalyse 2)

Python-Debugging: Protokollierung und PDF (Beispielanalyse 2)

Aug 23, 2018 pm 01:38 PM
python 调试

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!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie kann man Node.js oder Python -Dienste in Lampenarchitektur effizient integrieren? Wie kann man Node.js oder Python -Dienste in Lampenarchitektur effizient integrieren? Apr 01, 2025 pm 02:48 PM

Viele Website -Entwickler stehen vor dem Problem der Integration von Node.js oder Python Services unter der Lampenarchitektur: Die vorhandene Lampe (Linux Apache MySQL PHP) Architekturwebsite benötigt ...

Wie löste ich das Problem der Berechtigungen beim Betrachten der Python -Version in Linux Terminal? Wie löste ich das Problem der Berechtigungen beim Betrachten der Python -Version in Linux Terminal? Apr 01, 2025 pm 05:09 PM

Lösung für Erlaubnisprobleme beim Betrachten der Python -Version in Linux Terminal Wenn Sie versuchen, die Python -Version in Linux Terminal anzuzeigen, geben Sie Python ein ...

Was ist der Grund, warum Pipeline persistente Speicherdateien bei der Verwendung von Scapy Crawler nicht geschrieben werden kann? Was ist der Grund, warum Pipeline persistente Speicherdateien bei der Verwendung von Scapy Crawler nicht geschrieben werden kann? Apr 01, 2025 pm 04:03 PM

Bei der Verwendung von Scapy Crawler kann der Grund, warum Pipeline persistente Speicherdateien nicht geschrieben werden kann? Diskussion beim Lernen, Scapy Crawler für Data Crawler zu verwenden, begegnen Sie häufig auf eine ...

Python Hourglass Graph Drawing: Wie vermeiden Sie variable undefinierte Fehler? Python Hourglass Graph Drawing: Wie vermeiden Sie variable undefinierte Fehler? Apr 01, 2025 pm 06:27 PM

Erste Schritte mit Python: Hourglas -Grafikzeichnung und Eingabeüberprüfung In diesem Artikel wird das Problem der Variablendefinition gelöst, das von einem Python -Anfänger im Hourglass -Grafikzeichnungsprogramm auftritt. Code...

Was ist der Grund, warum der Python -Prozesspool gleichzeitige TCP -Anfragen behandelt und den Kunden dazu bringt, stecken zu bleiben? Was ist der Grund, warum der Python -Prozesspool gleichzeitige TCP -Anfragen behandelt und den Kunden dazu bringt, stecken zu bleiben? Apr 01, 2025 pm 04:09 PM

Python Process Pool verarbeitet gleichzeitige TCP -Anfragen, die dazu führen, dass der Client stecken bleibt. Bei der Verwendung von Python für die Netzwerkprogrammierung ist es entscheidend, gleichzeitige TCP -Anforderungen effizient zu verarbeiten. ...

Wie kann ich die ursprünglichen Funktionen betrachten, die von Python Functools.Partial Object in intern eingekapselt sind? Wie kann ich die ursprünglichen Funktionen betrachten, die von Python Functools.Partial Object in intern eingekapselt sind? Apr 01, 2025 pm 04:15 PM

Erforschen Sie tief die Betrachtungsmethode von Python Functools.Partialial Object in functools.Partial mit Python ...

Python Cross-Platform Desktop-Anwendungsentwicklung: Welche GUI-Bibliothek ist die beste für Sie? Python Cross-Platform Desktop-Anwendungsentwicklung: Welche GUI-Bibliothek ist die beste für Sie? Apr 01, 2025 pm 05:24 PM

Auswahl der Python-plattformübergreifenden Desktop-Anwendungsentwicklungsbibliothek Viele Python-Entwickler möchten Desktop-Anwendungen entwickeln, die sowohl auf Windows- als auch auf Linux-Systemen ausgeführt werden können ...

Bieten Google und AWS öffentliche PYPI -Bildquellen an? Bieten Google und AWS öffentliche PYPI -Bildquellen an? Apr 01, 2025 pm 05:15 PM

Viele Entwickler verlassen sich auf PYPI (PythonpackageIndex) ...

See all articles