如何在python中使用类型联合?

and*_*ndy -1 python

我找到了以下代码:

def get_iterator_from_config(config: dict, data: dict):
    iterator_config = config['dataset_iterator']
    iterator: Union[DataLearningIterator, DataFittingIterator] = from_params(iterator_config,data=data)
    return iterator
Run Code Online (Sandbox Code Playgroud)

为什么迭代器有冒号然后有联合?这是否意味着迭代器的类型是联合?为什么不能只使用:

iterator= from_params(iterator_config,data=data)
Run Code Online (Sandbox Code Playgroud)

小智 5

它只是类型提示,用作指示参数可能是什么类型的一种方式。Union[DataLearningIterator, DataFittingIterator]意味着它是 aDataLearningIterator或 a DataFittingIterator

你是对的,它不需要,但它可能用于可读性,即指示我们期望迭代器的类型。

详情请见:https : //docs.python.org/3/library/typing.html