Python类型注解(十)

简介: Python类型注解(十)

类型注解


一.为什么需要类型注解


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


  • 帮助第三方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
目录
相关文章
|
2月前
|
存储 索引 Python
Python散列类型(1)
【10月更文挑战第9天】
|
2月前
|
计算机视觉 Python
Python实用记录(一):如何将不同类型视频按关键帧提取并保存图片,实现图片裁剪功能
这篇文章介绍了如何使用Python和OpenCV库从不同格式的视频文件中按关键帧提取图片,并展示了图片裁剪的方法。
87 0
|
5天前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
37 8
|
26天前
|
Python
在 Python 中实现各种类型的循环判断
在 Python 中实现各种类型的循环判断
29 2
|
2月前
|
存储 数据安全/隐私保护 索引
|
2月前
|
Python
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
本篇将详细介绍Python中的字符串类型及其常见操作,包括字符串的定义、转义字符的使用、字符串的连接与格式化、字符串的重复和切片、不可变性、编码与解码以及常用内置方法等。通过本篇学习,用户将掌握字符串的操作技巧,并能灵活处理文本数据。
58 1
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
|
2月前
|
Python
【10月更文挑战第6天】「Mac上学Python 10」基础篇4 - 布尔类型详解
本篇将详细介绍Python中的布尔类型及其应用,包括布尔值、逻辑运算、关系运算符以及零值的概念。布尔类型是Python中的一种基本数据类型,广泛应用于条件判断和逻辑运算中,通过本篇的学习,用户将掌握如何使用布尔类型进行逻辑操作和条件判断。
65 1
【10月更文挑战第6天】「Mac上学Python 10」基础篇4 - 布尔类型详解
WK
|
2月前
|
存储 Python
Python内置类型名
Python 内置类型包括数字类型(int, float, complex)、序列类型(str, list, tuple, range)、集合类型(set, frozenset)、映射类型(dict)、布尔类型(bool)、二进制类型(bytes, bytearray, memoryview)、其他类型(NoneType, type, 函数类型等),提供了丰富的数据结构和操作,支持高效编程。
WK
20 2
|
2月前
|
存储 编译器 索引
Python 序列类型(2)
【10月更文挑战第8天】
Python 序列类型(2)
|
2月前
|
存储 C++ 索引
Python 序列类型(1)
【10月更文挑战第8天】