【发布时间】:2013-12-23 22:29:43
【问题描述】:
我正在尝试创建一个IsDescription 子类,以便我可以定义我正在尝试创建的表的结构。子类**的属性之一需要给定一定的长度,直到运行时才知道(它取决于正在解析的文件),但在运行时是固定的。
示例代码:
import tables
class MyClass(tables.IsDescription):
def __init__(self, param):
var1 = tables.Float64Col(shape=(param))
MyClass1 = MyClass(12)
返回:TypeError: object.__new__() takes no parameters。使用self.var1 = ... 会出现同样的错误。
在this SO question 中,问题被列为因为IsDescription 是一个元类,但没有给出元类禁止这种行为的原因,也没有给出解决方法。
是否有解决方法允许 PyTables 中的表具有未知(但固定)大小?
最后,为了避开XY problem cmets,我想我可以使用数组或可扩展数组来做我想做的事情(将解决方案数据输出到磁盘)。我仍然很想看到上述问题的答案。
**它们在 PyTables 文档中被称为属性,但写 >>> subclass.attrib 会返回 AttributeError: type object 'subclass' has no attribute 'attrib',所以我不知道这是否正确
【问题讨论】: