我有一个问题要让我的代码更自愈。例如:我执行方法 1 将数据从 CSV 加载到 Vertica 数据库中。我有另一种方法 2 来检查数据库中的行数和 CSV 文件中的行数是否相同。如果行数不匹配,那么我正在考虑从调用查询的位置调用方法 2,以将数据从 CSV 加载到数据库中。
我正在考虑针对此问题的检查点策略。例如,在代码中维护通常发生错误的一些点并在其他点调用它们。
我已经尝试在 python 中使用 pickle 模块,但后来知道 pickle 只能保存对象、类、变量等。不能保存我实际执行方法的点。
我提供了一些演示代码:
import pickle
class Fruits:
def apple(self):
filehandler= open ("Fruits.obj","wb")
print "apple"
pickle.dump(self,filehandler)
print "mapple"
filehandler.close()
def mango(self):
filehandler = open("Fruits.obj","rb")
print "mango"
obj=pickle.load(filehandler)
obj.apple()
general = Fruits()
general.apple()
general.mango()
the output of above program is:
apple
mapple
mango
apple
mapple
我希望我的代码能够执行,以便当 mango 方法调用 apple 方法时,它必须从仅打印“mapple”的点开始执行。它不能执行整个方法。
请给我一些关于如何解决这个问题的见解。
提前致谢