文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-09-02 10:09

关注

文章目录





一、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] = 0var_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 Unionvar_i: Union[str, int] = 0var_s: Union[str, int] = "Tom"var_n: Union[str, int] = Nonevar_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.pyProcess finished with exit code 0

在这里插入图片描述

来源地址:https://blog.csdn.net/han1202012/article/details/131689698

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯