Python类型注解 ⑤ ( Union 联合类型注解 | Union 联合类型语法 | 普通 / 容器 变量设置 Union 联合类型注解 | 函数设置 Union 联合类型注解 )
一、Union 联合类型
1、数据容器的类型注解问题
对 list 列表 或 dict 字典 类型 设置 类型注解 ,
如果 list 列表中的元素都是 int 类型 ,
dict 字典 中的 键值对 , 键 Key 类型是 str 字符串类型 , 值 Value 的类型是 int 数字类型 ,
那么 , 可以写成下面的形式 ;
var_list: list[int] = [1, 2, 3]
var_dict: dict[str, int] = {"Tom": 18, "Jerry": 12,}
假如 list 列表 中的 元素类型不是 int 类型 , 而是 str 类型 或 int 类型 , 如下代码所示 :
var_list = [1, "Tom", 2, "Jerry"]
列表中的元素值 , 既有 str 字符串 , 又有 int 数字类型 ;
假如 dict 字典中 , 键值对 的 键 Key 或 值 Value 的类型 并不是相同的 , 也是 str 类型 或 int 类型 , 如下代码所示 :
var_dict = {"Tom": "18", "Jerry": 12,}
字典中的 值 Value , 既有 str 字符串 , 又有 int 数字类型 ;
2、Union 联合类型语法
如果一个 变量 或 元素 , 其类型 可能是多种类型 , 那么可以使用 Union 联合类型表示 ;
导入依赖 : 使用 Union 联合类型 , 需要导入如下依赖 ;
# 导入 Union 联合类型依赖
from typing import Union
Union 联合类型语法 :
Union[类型1, 类型2, ... , 类型n]
3、代码示例 - 普通变量设置 Union 联合类型注解
代码示例 : 下面的 3 个变量 , 其类型注解设置的 Union 联合类型 , 也就是为其赋值时 , 可以赋值 str 字符串类型 或 int 数字类型的值 ;
var_i: Union[str, int] = 0
var_s: Union[str, int] = "Tom"
var_n: Union[str, int] = None
4、代码示例 - 容器变量设置 Union 联合类型注解
在 list 列表中将元素类型设置为 Union 联合类型 : 列表中的元素 既可以设置为 str 字符串类型 , 又可以设置为 int 数字类型 ;
var_list: list[Union[str, int]] = [1, "Tom", 2, "Jerry"]
在 dict 字段中将 键值对的 元素类型设置为 Union 联合类型 : 键值对 既可以设置为 str 字符串类型 , 又可以设置为 int 数字类型 ;
var_dict: dict[Union[str, int], Union[str, int]] = {"Tom": "18", "Jerry": 12,}
5、代码示例 - 函数中设置 Union 联合类型注解
下面的 函数 的 形参 data , 其设置的 类型注解 为 Union[str, int] 联合类型注解 ,
函数 的 返回值类型是 Union[str, int] 联合类型注解 ;
def func(data: Union[str, int]) -> Union[str, int]:
pass
二、完整代码示例 - Union 联合类型
代码示例 :
"""
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
执行结果 :
D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py
Process finished with exit code 0
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhhgijbg
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
excel打印预览压线压字怎么办
PHP中文网 06-22