Python类型标注的全新解读
目录
一. 为何需要类型注解
二. 变量的类型标注
(1) 语法格式
(2) 基础类型
(3) 类对象
(4) 数据容器
(5) 其他语法格式
三. 函数(方法)的类型标注
(1) 形参标注
(2) 返回值标注
四. Union类型
一. 为何需要类型注解
在代码中明确标注数据类型(进行显式说明),使用时可获取相关提示。它能协助像PyCharm这类第三方IDE工具进行类型推断,辅助代码提示。比如,当明确声明某个对象是list类型时,使用该对象时IDE能给出对应提示;而若未声明具体类型,使用时则不会有任何相关提示。
二. 变量的类型标注
用于提示变量的数据类型
(1) 语法格式
变量名: 数据类型 = 具体数值。需注意,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]
- 方式二(指定列表元素基础类型):
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}
- 方式二(指定集合元素基础类型):
my_set: set[int] = {1, 2, 3}
- 字典类型标注
- 方式一:
my_dict: dict = {"hhbdy": 250}
- 方式二(指定字典键值类型):
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类型
联合类型标注,可在变量标注、函数(方法)形参和返回值标注中使用。需导入typing模块中的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
文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/13638.html