Как намекнуть тип собственной переменной в Python - PullRequest
0 голосов
/ 25 декабря 2018

Обычно нет необходимости заботиться о переменной 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.Есть идеи?

...