Python 钩子列表?

A list of Python Hooks?

为了更好地理解我正在尝试实现跟踪元class 的程序,当 class 从它继承时,它的所有方法调用都会跟踪到一个文件。我不能简单地使用像 Trace.py 这样的模块,因为我无法访问我的执行环境中的控制台。我最近了解到 sys.settrace(),每当 python 执行一行时都会调用一个挂钩,虽然它几乎解决了我的问题,但我无法获得跟踪的相关行信息,因为我没有任何知道将执行哪个文件的方法。我怀疑我需要一个钩子,它在调用 class 中的任何方法之前被调用,传入方法名称,然后在跟踪元 class.

中实现该钩子

是否有所有 python 挂钩的参考?

提前致谢

我不确定我是否正确理解了你的问题,但你可以从框架的 f_code 成员那里获得有关 file/line 的信息:

def trace(frame, event, arg_frame):
    print(frame.f_code.co_filename, frame.f_code.co_firstlineno)

sys.settrace(trace)

有关框架和代码对象的更多信息:https://docs.python.org/3/library/inspect.html