在Python中忽略子类的构造函数

时间:2017-10-18 17:13:28

标签: python numpy

我试图使用不同的构造函数参数从numpy.recarray派生一个类:

import numpy as np

class Table(np.recarray):
    def __init__(self,
                 silly_arg = ['nope']):
      print "Table.__init__"

      super(Table, self).__init__(shape = 10, dtype = [('r', np.float64), ('v', np.float64)])

t = Table()

但是,它不遵守我的print指令,而是出错:

$ python test.py
Traceback (most recent call last):
  File "test.py", line 10, in <module>
    t = Table()
TypeError: __new__() takes at least 2 arguments (1 given)

我认为这是因为除了__new__之外,recarray还有__init__方法,并且在构造实际发生之前调用new来分配它。

请注意,我使用的是Python 2.7。

我该如何正确地做到这一点?传递给重新分组的分配的参数取决于构造期间传递给Table的参数。

0 个答案:

没有答案