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?

伊谢尔伦
伊谢尔伦Original
2017-06-28 13:48:491617Durchsuche

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()

Ausgabe:

aaa1.py(dea25ee49c3f91dfee5a2ed5d0bddd9a: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!

Stellungnahme:
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