如何在Python中跟踪局部变量的值?

时间:2018-09-13 12:33:51

标签: python debugging design-patterns aop wrapper

我的算法遍历了几秒钟的数据。对于每个数据第二价值,我都返回一个值,这是一个涉及多个子模块和子类的相当复杂的计算的结果。这些类中的某些类每秒都会重新初始化。

出于调试目的,有几次我一直想绘制一段时间内这些类之一中某个局部变量的值。外部的东西将不得不序列化并记录这些值,因为该类仅存在一秒钟。每次都是不同的局部变量。

我如何才能正确实现软件设计目标,而不必每次都花费我几个小时,并且每次我都不想编写一两行以上的新代码?

理想情况下,我考虑过的一种解决方案是拥有诸如全局IO流之类的东西,而不必“初始化”每个类,这样我就可以“随处可见”,因此我可以插入某种类型的东西在代码中的任意位置使用MySerializer << [mylocalvariable, timestamp]命令,然后在运行结束时检查MySerializer是否为空,如果不是,则可以绘制其中的内容...或类似内容。如果我可以对不同类中的多个局部变量执行此操作,则更好。这个解决方案好吗?我该怎么办?

或者为了能够以一种面向方面的方式做到这一点,可以使某些外部对象“查看代码”而不进行更改,构建该局部变量的值的缓冲区,然后将它们随处可见。结束。我该怎么办?

是否有更好的解决方案?哪种设计模式适合这种情况?

过去我所做的是将局部变量返回给拥有函数的人,然后该人又必须返回其接收到的值,依此类推,直到顶部。这是一团糟,每次都必须写入和删除。

0 个答案:

没有答案