Python类的子类可以具有与基类不同的参数吗?

时间:2019-06-22 22:29:44

标签: python inheritance

我正在使用Python 3.6.7,并且拥有:

class CodeModel:
    def tokenize(self, lexer, save_tokens=None):
        tokens = np.array([], dtype='object')
        line_count = 0

那我有:

class JSCode(CodeModel):
    def tokenize(self, **kwargs):
        lexer = JavascriptLexer()
        super().tokenize(lexer, **kwargs)

CodeModel中,我有:

self.tokenize(save_tokens='stuff')

我希望它然后调用tokenize的{​​{1}}中的JSCode,并将其传递给基类save_tokens。{{1 }}。

但是,我的操作方式似乎无效。我得到的错误是:

CodeModel

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

如果type(self)CodeModel,但是您知道要呼叫JSCode.tokenize,则可以使用JSCode.tokenize(self)

我认为没有充分的理由说明为什么self的类型应为CodeModel。如果代码不需要JSCode的任何其他功能,那么为什么要将它放在该类下。在模块名称空间中只有一个方法