我使用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)
答案 0 :(得分:1)
Namedtuples是可以改变的,所以你需要使用 new ()而不是 init ()
{{1}}