Обычно нет необходимости заботиться о переменной self
в функции-члене класса Python, но я реализую декоратор, выглядит как
def extractor(depends: List[Text]=None,
provides: List[Text]=None) -> Callable[[ExtractorFunction],
ExtractorFunction]:
def _func_wrapper(func: ExtractorFunction) -> ExtractorFunction:
func.is_extractor = True # The value is not important through
func.depends = depends
func.provides = provides
@functools.wraps(func)
def _wrapper(self, parsed: CCDATA, target: ExtractResult) -> None:
func(self, parsed, target)
return _wrapper
return _func_wrapper
, который предназначен для использования следующим образом:
class Extractor():
@extractor()
def _extractor_for_xxx(self, parsed: CCDATA, target: ExtractResult) -> None:
pass
ExtractResult
четко определено, но я не уверен, как определить тип ExtractorFunction
.Есть идеи?