Python typing - унаследованный класс

У меня есть класс 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]

Обратите внимание, что это не фактическая проблема, которая препятствует выполнению кода. Мне просто любопытно, можно ли создать такую ​​типизацию.

0 ответов

Другие вопросы по тегам