从namedtuple继承子类

时间:2018-02-18 16:28:39

标签: python python-3.x

我使用python 3.6并且在从namedtuple进行子类化时遇到了问题。例如:

from collections import namedtuple

FieldMetaInfoBase = namedtuple('FieldMetaInfoBase', ['name', 'type', 'special'])

class FieldMetaInfo(FieldMetaInfoBase):
  def __init__(self,
               name,
               type,
               special):

    # throws TypeError: object.__init__() takes no parameters
    super(FieldMetaInfo, self).__init__(name, type, special)

    # is this correct??
    # FieldMetaInfoBase.__init__(name, type, special)


fmi = FieldMetaInfo('a', 'b', 'c')

出于某种原因,我无法使用某些值初始化元组,因为我收到错误:

TypeError: object.__init__() takes no parameters

有谁知道如何解决这个问题?或者我的解决方案是否正确?

FieldMetaInfoBase.__init__(name, type, special)

1 个答案:

答案 0 :(得分:1)

Namedtuples是可以改变的,所以你需要使用 new ()而不是 init ()

{{1}}