我使用python的次数越多,我就越想用pythonic方式来做,即尽量避免isinstance查询等。我正在开发一个用于数值模拟的科学参数探索的框架。
我使用两个严格的约束:首先,我需要能够重复我第一次运行的方式存储到磁盘的特定模拟。其次,数据应该是hdf5 / pytables格式的可读和可读。
这两个概念都有点对立。一旦我将东西作为pytables数据存储,一些信息就会丢失。例如,在重新加载python之后,int变为numpy.int64。如果你想重新运行数值模拟,这可能会有问题,因为有些情况下,变量与int的乘法工作正常但在与numpy.int64一起使用时会中断。例如,如果您使用尖峰神经网络模拟器BRIAN,就是这种情况。
所以一个直截了当的答案就是简单地腌制所有东西,然后像往常一样把它取回来。然而,这对于可读的hdf5数组或表数据的想法并不适用。
所以我想到的是将原始数据格式作为hdf5属性存储到相应的表或数组中,并使用此信息重建原始数据。首先,这是一个好主意,其次,最蟒蛇的方式是什么?
例如,这个怎么样:
original_class_name = data.__class__.__name__
# do the storage of data and the original_class_name
{...}
# load the hdf5data and reconstruct it
reconstructed_data = eval(original_class_name+'(hdf5data)')
对我而言,这似乎太过于苛刻。