我拥有的是数据的列表类型,每种类型均由名称标识。例如“长度”和“重量”。这些用于读取和写入文件中的字节。每个度量标准都存储不同数量的字节,因此我有一个Metric类,该类存储例如描述和度量标准的字节长度。然后,我可以保留可以随时添加到其中的度量标准定义的JSON文件或XML文件。
我现在想通过向类添加to_bytes和from_bytes方法来区分如何读取和写入这些字节。我可以将函数定义作为字符串存储在JSON文件中,而只需eval()即可,或者我可以为每个指标编写单独的子类。
将函数定义与其他数据一起存储的最佳方法是什么?我愿意接受任何建议,但是最好的解决方案是使手动添加新指标到集合的工作变得容易。
答案 0 :(得分:0)
您可以像其他所有东西一样腌制一个函数
import pickle
def foo(x):
return x*x
with open('myfile', 'wb') as f:
pickle.dump(foo, f)
with open('myfile', 'rb') as f:
moo = pickle.load(f)
print(moo(3))
输出:
9
也适用于整个班级:
import pickle
class MyClass:
def foo(x):
return x*x
with open('myfile', 'wb') as f:
pickle.dump(MyClass, f)
with open('myfile', 'rb') as f:
LoadedClass = pickle.load(f)
print(LoadedClass.foo(3))
输出:
9