Python 中的检查点以捕获运行时状态



我有一个问题,让我的代码更易于自我修复。例如:我执行方法 1 将数据从 CSV 加载到 Vertica 数据库中。我有另一种方法2来检查数据库中的行数和CSV文件中的行数是否相同。如果行数不匹配,那么我正在考虑从调用查询以将数据从 CSV 加载到数据库中的位置调用方法 2。

我在考虑这个问题的检查点策略。 例如,在代码中维护通常发生错误的某些点,并在其他点调用它们。

我已经尝试在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

我希望我的代码执行,当芒果方法调用苹果方法时,它必须从仅打印"mapple"的角度执行。 它不能执行整个方法。

请为我提供一些有关如何解决此问题的见解。

提前致谢

注意
您的代码根本不起作用。def mango(...filehandlerdef apple(...中的filehandler不同。因此,在def mango(...中打开的文件永远不会关闭

if condidtion添加到def apple,您根本不需要pickle

def apple(self, mango=False):
if not a´mango:
filehandler= open ("Fruits.obj","wb")
...
print "mapple"        
...
def mango(self):
filehandler = open("Fruits.obj","rb")
...
obj.apple(True)

最新更新