如何在 python 中使用类型联合? [复制]

Posted

技术标签:

【中文标题】如何在 python 中使用类型联合? [复制]【英文标题】:how to use typing union in python? [duplicate] 【发布时间】:2020-01-22 03:16:42 【问题描述】:

我找到了以下代码:

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

为什么迭代器有冒号然后是联合?是不是表示迭代器的类型是union?为什么不能只用:

iterator= from_params(iterator_config,data=data)

【问题讨论】:

我认为这是无效的语法,但研究后,你可以实际使用它,可能是出于可读性目的,因此从变量定义中可以清楚地读取迭代器的类型。由于 python 的“鸭子打字”,有时需要这样做。 【参考方案1】:

它只是类型提示,用于指示参数可能是什么类型。 Union[DataLearningIterator, DataFittingIterator] 表示它要么是 DataLearningIterator 要么是 DataFittingIterator

你说得对,它不是必需的,但它可能是为了提高可读性,即指示我们期望迭代器是哪些类型。

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

【讨论】:

以上是关于如何在 python 中使用类型联合? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将 c++ 联合类型转换为 c# 代码? [复制]

如何为返回多种可能数据类型的函数记录 :rtype:? [复制]

使用pycharm手动搭建python语言django开发环境 django中buffer类型与str类型的联合使用

在 onClick 道具中使用联合类型

获取/提取作为联合类型中的类型之一的类型的类型 - 打字稿

如何在python中将字符串变量转换为字节类型? [复制]