Пусть у меня есть абстрактный класс, который использует генерик:
from abc import ABC, abstractmethod
from typing import Generic, TypeVar
T = TypeVar("T")
class GenericAbstract(Generic[T], ABC):
def __init__(self, a: T, b: T):
self.a = a
self.b = b
@abstractmethod
def action(self) -> T:
pass
Теперь я наследуюсь от этого класса, указывая конкретный тип:
(при автоматическом создании
__init__
вместо
int
также подставляется
T
)
class Implementation(GenericAbstract[int]):
def __init__(self, a: int, b: int):
super().__init__(a, b)
PyCharm подсказывает, что в классе
Implementation
не реализован метод
action
. Через контекстное меню я пытаюсь автоматически имплементировать его, но получаю
def action(self) -> T:
pass
А хотелось бы
def action(self) -> int:
pass
Можно ли как-то изменить поведение PyCharm'а? (mypy умеет отлавливать это, но было бы хорошо, если бы IDE сразу подставляла нужный тип)