我正在使用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
我在做什么错了?
答案 0 :(得分:1)
如果type(self)
是CodeModel
,但是您知道要呼叫JSCode.tokenize
,则可以使用JSCode.tokenize(self)
我认为没有充分的理由说明为什么self
的类型应为CodeModel
。如果代码不需要JSCode
的任何其他功能,那么为什么要将它放在该类下。在模块名称空间中只有一个方法