我有以下代码
try:
from mypackage.optional.xxx import f1, f2
except ImportError:
from mypackage.optional.yyy import f1, f2
Run Code Online (Sandbox Code Playgroud)
模块xxx和yyy提供相同的功能,但功能的编码非常不同,接受不同的输入类型并基于不同的外部库(这是我的包的可选依赖项)。
不幸的mypy是抱怨:
error: Incompatible import of "f1" (imported name has type "Callable[[Arg(Any, 'yyyarg1')], Any]", local name has type "Callable[[Arg(Any, 'xxxarg1')], Any]")
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?有条件地导入相同功能(即具有相似签名的相同功能名称)的最佳方法是什么?