我使用的是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')
我希望它调用JSCode
的tokenize
,它不需要save_tokens
,并将其传递给基类CodeModel
。tokenize
。你知道吗
然而,我这样做似乎不起作用。我得到的错误是:
self.tokenize(save_tokens=save_tokens)
TypeError: tokenize() got an unexpected keyword argument 'save_tokens'
我做错什么了?你知道吗
如果
type(self)
是CodeModel
,但是您知道您想调用JSCode.tokenize
,那么您可以使用JSCode.tokenize(self)
我想不出什么好的理由说明
self
应该是CodeModel
类型。如果代码不需要JSCode
的任何其他特性,那么为什么还要将它放在该类下呢。只需要在模块命名空间中有一个方法相关问题 更多 >
编程相关推荐