У меня есть функция класса, которую я хочу определить, только если доступен определенный модуль (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
недоступен, и использовать ее.
Мне любопытно, есть ли лучший, более очевидный способ добиться этого.