Python中类型注解(变量/函数和方法/Union/类型注解)

变量的类型注解

1.什么是类型注解,有什么作用?
在代码中涉及数据交互之时,对数据类型进行显式的说明,可以帮助:
PyCharm等开发工具对代码做类型推断协助做代码提示
开发者自身做类型的备注
2.类型注解支持:
变量的类型注解
函数(方法)的形参和返回值的类型注解
3.变量的类型注解语法
语法1: 变量: 类型
语法2: 在注释中,# type: 类型
4.注意事项
类型注解只是提示性的,并非决定性的。数据类型和注解类型无法对应也不会导致错误

示例代码:

import json
import random

# 基础数据类型注解
var_1: int = 10
var_2: str = "itheima"
var_3: bool = True

# 类对象类型注解
class Student:
    pass
stu: Student - Student()

# 基础容量类型注解
my_list: list = [1, 2, 3]
my_tuple: tuple = (1, 2, 3)
my_dict: dict = {"小米": 666}

# 容量类型详细注解
my_list: list[int] = [1, 2, 3]
my_tuple: tuple[int, str, bool] = (1, "小米", True)
my_dict: dict[str, int] = {"小米": 666}

# 在注释中进行类型注解
var_1 = random.randint(1, 10)  # type:int
var_2 = json.loads({"name": "zhangsan"})  # type:dict
def func():
    return 10
var_3 = func()  # type:int

函数和方法类型注解-------形参注解

Python中类型注解(变量/函数和方法/Union/类型注解)_第1张图片
Python中类型注解(变量/函数和方法/Union/类型注解)_第2张图片

如图所示:
在编写函数(方法),使用形参data的时候,工具没有任何提示
在调用函数(方法),传入参数的时候,工具无法提示参数类型
这些都是因为,我们在定义函数(方法)的时候,没有给形参进行注解

函数和方法的形参类型注解语法:
在这里插入图片描述
Python中类型注解(变量/函数和方法/Union/类型注解)_第3张图片
代码示例:

# 对形参进行类型注解
def add(x:int, y:int):
    return x + y

函数和方法类型注解------返回值注解

同时,函数(方法)的返回值也是可以添加类型注解的。
语法如下:
Python中类型注解(变量/函数和方法/Union/类型注解)_第4张图片
代码示例:

# 对返回值进行类型注解
def func(data:list) -> list:
    return data

总结:

  1. 函数(方法)可以为哪里添加注解?
    形参的类型注解
    返回值的类型注解
  2. 函数(方法)的类型注解语法?
    在这里插入图片描述
    注意,返回值类型注解的符号使用: ->

Union类型进行注解

  1. 什么是Union类型?
    使用Union可以定义联合类型注解
  2. Union的使用方式
    导包:from typing import Union
    使用:Union[类型, …, 类型]

代码示例:

# 使用Union类型,必须先导包
from typing import Union
my_list: list[Union[int, str]] = [1, 2, "xiaomai" "IT"]

# 在变量注解、函数(方法)形参和返回值注解中,
def func(data: Union[int, str]) -> Union[int, str]:
    pass
func()

你可能感兴趣的:(Python学习,python,开发语言)