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
为了更好地理解我正在尝试实现跟踪元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