观察在Python中调用哪个函数

时间:2012-11-27 15:34:19

标签: python debugging

在Python中记录调试函数调用的最简单方法是什么?我通常对特定函数或给定类的所有函数感兴趣。或者有时甚至所有函数都调用特定的对象属性。看到调用参数也很有用。

我可以想象为所有这些编写装饰器,但是我仍然需要在不同的地方修改源代码。编写修改所有方法的类装饰器并不是那么简单。

有没有我不需要修改源代码的解决方案?理想情况下,过多的东西并不会减慢Python的速度。

2 个答案:

答案 0 :(得分:1)

除了装饰器,对于Python> = 3.0,您可以对类使用新的__getattribute__方法,每次调用对象的任何方法时都会调用该方法。 你可以通过Lutz“学习Python”第31,37章了解它。

答案 1 :(得分:1)

您应该能够使用sys.setprofile()sys.settrace()来实现您想要的功能。它们都允许您定义在特定“事件”发生时要调用的函数,如函数调用,并传递可用于确定被调用的函数/方法的其他信息并检查其参数。

如果你环顾四周,可能会使用样本使用代码作为一个很好的起点。