首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Python】类型注解 ⑤ ( Union 联合类型注解 | Union 联合类型语法 | 普通 / 容器 变量设置 Union 联合类型注解 | 函数设置 Union 联合类型注解 )

【Python】类型注解 ⑤ ( Union 联合类型注解 | Union 联合类型语法 | 普通 / 容器 变量设置 Union 联合类型注解 | 函数设置 Union 联合类型注解 )

作者头像
韩曙亮
发布2023-10-11 19:52:00
发布2023-10-11 19:52:00
1.4K00
代码可运行
举报
运行总次数:0
代码可运行

一、Union 联合类型

1、数据容器的类型注解问题

对 list 列表 或 dict 字典 类型 设置 类型注解 ,

如果 list 列表中的元素都是 int 类型 ,

dict 字典 中的 键值对 , 键 Key 类型是 str 字符串类型 , 值 Value 的类型是 int 数字类型 ,

那么 , 可以写成下面的形式 ;

代码语言:javascript
代码运行次数:0
运行
复制
var_list: list[int] = [1, 2, 3]
var_dict: dict[str, int] = {"Tom": 18, "Jerry": 12,}

假如 list 列表 中的 元素类型不是 int 类型 , 而是 str 类型 或 int 类型 , 如下代码所示 :

代码语言:javascript
代码运行次数:0
运行
复制
var_list = [1, "Tom", 2, "Jerry"]

列表中的元素值 , 既有 str 字符串 , 又有 int 数字类型 ;

假如 dict 字典中 , 键值对 的 键 Key 或 值 Value 的类型 并不是相同的 , 也是 str 类型 或 int 类型 , 如下代码所示 :

代码语言:javascript
代码运行次数:0
运行
复制
var_dict = {"Tom": "18", "Jerry": 12,}

字典中的 值 Value , 既有 str 字符串 , 又有 int 数字类型 ;

2、Union 联合类型语法

如果一个 变量 或 元素 , 其类型 可能是多种类型 , 那么可以使用 Union 联合类型表示 ;

导入依赖 : 使用 Union 联合类型 , 需要导入如下依赖 ;

代码语言:javascript
代码运行次数:0
运行
复制
# 导入 Union 联合类型依赖
from typing import Union

Union 联合类型语法 :

代码语言:javascript
代码运行次数:0
运行
复制
Union[类型1, 类型2, ... , 类型n]

3、代码示例 - 普通变量设置 Union 联合类型注解

代码示例 : 下面的 3 个变量 , 其类型注解设置的 Union 联合类型 , 也就是为其赋值时 , 可以赋值 str 字符串类型 或 int 数字类型的值 ;

代码语言:javascript
代码运行次数:0
运行
复制
var_i: Union[str, int] = 0
var_s: Union[str, int] = "Tom"
var_n: Union[str, int] = None

4、代码示例 - 容器变量设置 Union 联合类型注解

在 list 列表中将元素类型设置为 Union 联合类型 : 列表中的元素 既可以设置为 str 字符串类型 , 又可以设置为 int 数字类型 ;

代码语言:javascript
代码运行次数:0
运行
复制
var_list: list[Union[str, int]] = [1, "Tom", 2, "Jerry"]

在 dict 字段中将 键值对的 元素类型设置为 Union 联合类型 : 键值对 既可以设置为 str 字符串类型 , 又可以设置为 int 数字类型 ;

代码语言:javascript
代码运行次数:0
运行
复制
var_dict: dict[Union[str, int], Union[str, int]] = {"Tom": "18", "Jerry": 12,}

5、代码示例 - 函数中设置 Union 联合类型注解

下面的 函数 的 形参 data , 其设置的 类型注解 为 Union[str, int] 联合类型注解 ,

函数 的 返回值类型是 Union[str, int] 联合类型注解 ;

代码语言:javascript
代码运行次数:0
运行
复制
def func(data: Union[str, int]) -> Union[str, int]:
	pass

二、完整代码示例 - Union 联合类型

代码示例 :

代码语言:javascript
代码运行次数:0
运行
复制
"""
Union 联合类型注解 代码示例
"""

# 导入 Union 联合类型依赖
from typing import Union

var_i: Union[str, int] = 0
var_s: Union[str, int] = "Tom"
var_n: Union[str, int] = None

var_list: list[Union[str, int]] = [1, "Tom", 2, "Jerry"]

var_dict: dict[Union[str, int], Union[str, int]] = {"Tom": "18", "Jerry": 12, }


def func(data: Union[str, int]) -> Union[str, int]:
    pass

执行结果 :

代码语言:javascript
代码运行次数:0
运行
复制
D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py

Process finished with exit code 0
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Union 联合类型
    • 1、数据容器的类型注解问题
    • 2、Union 联合类型语法
    • 3、代码示例 - 普通变量设置 Union 联合类型注解
    • 4、代码示例 - 容器变量设置 Union 联合类型注解
    • 5、代码示例 - 函数中设置 Union 联合类型注解
  • 二、完整代码示例 - Union 联合类型
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档