我有一个Python包,它有一个可选的[Extras]依赖项,但我希望在所有方法上都坚持类型化.
情况是,在我的档案中,我有这个
class MyClass:
def __init__(self, datastore: Datastore): # <- Datastore is azureml.core.Datastore
...
def my_func(self):
from azureml.core import Datastore
...
我从函数内部导入,因为同一文件中还有其他类,在不使用附加组件(附加组件为azureml
)时应该导入这些类.
所以这显然是失败的,因为我在导入它之前引用了Datastore
.从__init__
方法中go 掉Datastore
打字显然解决了这个问题.
因此,总的来说,我的问题是,在键入可选(额外)包时,是否可以使用键入,如果可能,如何使用键入.
请注意,在类定义中导入(在class MyClass
语句下面)不是有效的解决方案,因为在导入模块时会调用此代码