У меня есть класс ABC, который называется Hub, и класс, который наследуется от него, и называется HistoricalHub.
# engine/hub.py
from abc import ABC, abstractmethod
class Hub(ABC):
@abstractmethod
def method1(self):
""""""
class HistoricalHub(Hub):
@abstractmethod
def method1:
some_real_code()
HistoricalHub, а также все остальные классы, наследуемые от Hub, используются в качестве параметра в другом классе (назовем его SimpleClass). Я использую подсказку, и я сделал следующее:
import engine.hub
class SimpleClass:
def __init__(self, hub: engine.hub.Hub):
some_real_code()
Первоначально я думал, что HistoricalHub (или любой другой класс, использующий Hub) будет идентифицирован как экземпляр Hub. Однако PyCharm выдает следующее предупреждение:
Ожидаемый тип «Hub», получен «Type[HistoricalHub]».
Обратите внимание, что это не фактическая проблема, которая препятствует запуску кода. Мне просто любопытно, можно ли создать такую типизацию.
Type[...]
, а не то, что это подкласс. - person Martijn Pieters   schedule 09.09.2018