Python类型注解(十)

python学习之旅(十)
学习汇总入口【Python】学习汇总(3万字+思维导图)
文末附带全文概览思维导图
写作不易,如果您觉得写的不错,欢迎给博主来一波点赞、收藏~让博主更有动力吧!

一.为什么需要类型注解

在代码中提供数据类型的注解(显式的说明),使用时能获得相关提示

  • 帮助第三方IDE工具(如PyCharm)对代码进行类型推断,协助做代码提示
    在这里插入图片描述

    • 显示声明时,pycharm确定这个对象是list类型,使用时能有对应提示
      请添加图片描述

    • 没有声明具体类型时,使用不会有任何相关提示
      在这里插入图片描述

  • 帮助开发者自身对变量进行类型注释(备注),后面调用不易出错


二.变量的类型注解

提示变量的数据类型

在这里插入图片描述

(1) 语法格式

变量名: 数据类型 = 数值
  • 注:
    • Python中类型注解仅仅起到提示作用,没有其他语言那么严格
    • Python解释器不会根据类型注解对数值做验证和判断,无法对应上也不会导致错误

(2) 基础类型

  • 整数类型注解
var_1: int = 1314 
  • 浮点数类型注解
var_2: float = 5.21 
  • 布尔类型注解
var_3: bool = True  
  • 字符串类型注解
var_4: str = "hhybd"  

(3) 类对象

# 定义学生类
class Student:
    pass

stu: Student = Student()  # 学生类类型注解

(4) 数据容器

  • 列表类型注解

    • 方式一:
    my_list: list = [1, 2, 3]
    
    • 方式二,list[基础类型]:
    my_list: list[int] = [1, 2, 3]
    
  • 元组类型注解

    • 方式一:
    my_tuple: tuple = (1, 2, 3)
    
    • 方式二,元组类型需要将每一个元素都标记出来:
    my_tuple: tuple[str, int, bool] = ("bd", 521, True)
    
  • 集合类型注解

    • 方式一:
    my_set: set = {1, 2, 3}
    
    • 方式二,set[基础类型]
    my_set: set[int] = {1, 2, 3}
    
  • 字典类型注解

    • 方式一:
    my_dict: dict = {"hhbdy": 250}
    
    • 方式二,dict[键类型,值类型]
    my_dict: dict[str, int] = {"hhbdy": 250}
    
  • 字符串类型注解

my_str: str = "hhybd"

(5) 其他语法格式

  • 在注释中进行类型注解
  • 语法格式:
# type:类型
  • 使用示例:
stu = Student()  # type:Student
var_1 = 123  # type:int
my_list = [1, 2, 3]  # type:list
my_set = {1, 2, 3}  # type:set[int]

三.函数(方法)的类型注解

标注形参和返回值数据类型

  • 类型注解仅仅起到提示作用

(1) 形参注解

在这里插入图片描述

  • 语法格式:
def 函数方法名(形参名1:类型,形参名2:类型):
	函数体
  • 使用示例:
    在这里插入图片描述

(2) 返回值注解

  • 语法格式:
def 函数方法名(形参名1:类型,形参名2:类型) -> 返回值类型:
	函数体
  • 使用示例:
def add(x: int, y: int) -> int:
    return x + y

四.Union类型

联合类型注解,在变量注解、函数(方法)形参和返回值注解中均可使用

  • 需要导包使用

  • 当数据类型不唯一时基本格式无法满足要求,此时便可使用Union类型

  • 使用示例,Union[类型,类型]

    • 在变量中:
    from typing import Union
    # 数据为字符串和整数
    my_list: list[Union[str, int]] = [2, "hhy", 5, "bd", 0]
    # 键为字符串,值为字符串和整数
    my_dict: dict[str, Union[str, int]] = {"name": "hhy", "QS": 250}
    
    • 在函数中:
    from typing import Union
    
    # 接收字符串或整数,返回字符串或整数
    def func(data: Union[int, str]) -> Union[int, str]:
        pass
    

    五.全文概览

在这里插入图片描述

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

观止study

希望我的经验能为你指路

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值