Подсказки по типу с импортированным модулем в области видимости - PullRequest
1 голос
/ 28 сентября 2019

У меня есть функция класса, которую я хочу определить, только если доступен определенный модуль (X), определенный как установка "extra".

class ABC:
    try:
        from X import y

        def to_y(self) -> ???:
            return self.y(self)

    except ImportError:
        pass

Проблема в том, что y теперь привязан к области действия класса, а не к глобальной области видимости, которая нужна подсказкам типов.

Как мне обойти это?

Очевидно, я мог бы вынести все это за пределы области видимости класса и патча обезьяны в методе to_y.Или я мог бы создать глобальную переменную None, когда X недоступен, и использовать ее.

Мне любопытно, есть ли лучший, более очевидный способ добиться этого.

...