Python 3 中的 MATLAB 的 'dbstack' 是什么?
What's the equivalent of MATLAB's 'dbstack' in Python 3?
我正在尝试将用 MATLAB 编写的代码转换为 python。其中大量使用了一个名为 'dbstack' 的函数。此函数 return 调用函数的名称、其文件名和调用它的文件中的行号。这也是对所有前身文件递归完成的,这意味着这提供了有关调用调用函数的文件的信息。 Python有没有这样的等价物?
traceback 模块可能就是您要找的。它没有任何一个功能可以完全取代 dbstack,但它具有共同提供类似体验的功能。
import traceback
# print to stderr
traceback.print_stack()
# grab stack lines and manually manipulate them
for line in traceback.format_stack():
print(line)
您还可以在 inspect 模块中找到类似的信息。堆栈跟踪不是它的主要目的,但可以在那里访问它们。
import inspect
# Each frame is a Named Tuple
# FrameInfo(frame, filename, lineno, function, code_context, index)
for frame in inspect.stack():
print(frame)
我正在尝试将用 MATLAB 编写的代码转换为 python。其中大量使用了一个名为 'dbstack' 的函数。此函数 return 调用函数的名称、其文件名和调用它的文件中的行号。这也是对所有前身文件递归完成的,这意味着这提供了有关调用调用函数的文件的信息。 Python有没有这样的等价物?
traceback 模块可能就是您要找的。它没有任何一个功能可以完全取代 dbstack,但它具有共同提供类似体验的功能。
import traceback
# print to stderr
traceback.print_stack()
# grab stack lines and manually manipulate them
for line in traceback.format_stack():
print(line)
您还可以在 inspect 模块中找到类似的信息。堆栈跟踪不是它的主要目的,但可以在那里访问它们。
import inspect
# Each frame is a Named Tuple
# FrameInfo(frame, filename, lineno, function, code_context, index)
for frame in inspect.stack():
print(frame)