Heim > Backend-Entwicklung > Python-Tutorial > Wie zeichnet man die Implementierungsmethode des Call-Stack-Protokolls in Python auf?

Wie zeichnet man die Implementierungsmethode des Call-Stack-Protokolls in Python auf?

伊谢尔伦
Freigeben: 2017-06-28 13:48:49
Original
1607 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die Methode von Python zum Aufzeichnen detaillierter Aufrufstapelprotokolle vorgestellt, die verwandte Fähigkeiten von Python-Aufrufstapelprotokollen beinhaltet. Es hat einen gewissen Referenzwert.

Das Beispiel in diesem Artikel beschreibt, wie Python detaillierte Aufrufstapelprotokolle aufzeichnet. Teilen Sie es als Referenz mit allen. Die spezifische Implementierungsmethode lautet wie folgt:

import sys
import os
def detailtrace(info):
  retStr = ""
  curindex=0
  f = sys._getframe()
  f = f.f_back    # first frame is detailtrace, ignore it
  while hasattr(f, "f_code"):
    co = f.f_code
    retStr = "%s(%s:%s)->"%(os.path.basename(co.co_filename),
         co.co_name,
         f.f_lineno) + retStr
    f = f.f_back
  print retStr+info
def foo():
  detailtrace("hello world")
def bar():
  foo()
def main():
  bar()
if name == "main":
  main()
Nach dem Login kopieren

Ausgabe:

aaa1.py(<module>:27)->aaa1.py( main:24 )->aaa1.py(bar:21)->aaa1.py(foo:18)->hello world

Das obige ist der detaillierte Inhalt vonWie zeichnet man die Implementierungsmethode des Call-Stack-Protokolls in Python auf?. 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