在Python3中,MATLAB的“dbstack”等价于什么?

2024-10-02 00:42:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将用MATLAB编写的代码转换为python。其中大量使用了名为“dbstack”的函数。此函数返回调用函数的名称、文件名以及调用该函数的文件中的行号。这也是对所有前置文件递归执行的,这意味着这将提供有关调用调用函数的文件的信息。Python是否有这样的等价物


Tags: 文件函数代码名称信息文件名调用函数matlab
1条回答
网友
1楼 · 发布于 2024-10-02 00:42:19

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)

相关问题 更多 >

    热门问题