我有一个类函数,我只想定义定义为安装“额外”的某个模块(X
)是否可用。
class ABC:
try:
from X import y
def to_y(self) -> ???:
return self.y(self)
except ImportError:
pass
这里的问题是y
现在绑定到类的范围,而不是类型提示似乎需要的全局作用域。
我该如何解决?
很显然,我可以在to_y
方法中将所有这些内容排除在类范围和猴子补丁之外。或者,当None
不可用时,我可以创建一个全局变量X
并使用它。
我很好奇是否有更好,更明显的方法来实现这一目标。