我正在使用PyTables将Python数据存储在HDF5文件中,并且它需要一个帮助器类来创建表。这是一个例子:
class PacketData(pt.IsDescription):
data = pt.UInt8Col(shape=(128,))
# later code does this:
self.tdata = self.hfile.createTable(self.g, 'packetdata', PacketData,
filters=filters)
有没有一种方法可以使用元类来概括
128
? 最佳答案
我认为您这里不需要元类。实际上,由于元类固定在定义类的位置,因此我认为它不会为您提供参数化形状的机会。
您可以改用类工厂:
def packetdata(n):
class PacketData(pt.IsDescription):
data = pt.UInt8Col(shape=(n,))
return PacketData
self.tdata = self.hfile.createTable(self.g, 'packetdata', packetdata(128),
filters=filters)