Аннотировать метод подкласса? - PullRequest
0 голосов
/ 29 июня 2018

Предположим, у меня есть класс Mixin Mixin, а метод a в этом классе использует другой метод. b, который будет в другом Base классе. Я хочу аннотировать b в классе Mixin, чтобы я мог воспользоваться преимуществами проверки.

Реальное использование - множественное наследование. Я создаю миксин для tornado.web.RequestHandler, и подкласс может наследовать RequestHandler и Mixin, чтобы получить некоторые полезные функции.

Насколько я знаю, я могу аннотировать b как Callable, но я не могу комментировать его подпись.

class Base

    def b():
        # do something

class Mixin:
    b: Callable  # not enough, losing signature.
    #b: RequestHandler.b  # not work, still losing signature.
    def a():
        # call b here.

class subclass(Base, Mixin):
    pass

Кстати, я использую Pycharm.

...