IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> python3注解类型typing -> 正文阅读

[开发工具]python3注解类型typing

python3.5以上版本的注解类型typing

环境说明

python3.5以上

注解说明

在定义函数/方法时声明参数和返回值类型,仅为一种写法约定,无强制约束。让方法定义更加清晰,减少错误。

可以用于第三方的类型检查器、集成开发环境、静态检查器等

from typing import List, Optional
# 声明了一个函数 接收三个参数,分别是str类型的name,int类型的age,List类型且默认值为None的scores。返回值类型为bool
def test(name: str, age: int, scores: Optional[List] = None) -> bool:
	if scores:
		return True
	return False

官方文档

https://docs.python.org/zh-cn/3.10/library/typing.html

辅助工具

pyright微软出品,静态类型检查工具。以不符合typing定义参数类型的函数调用,会给出错误.VSCode中可以直接安装

常用注解

直接使用

str: 字符串 直接使用

int:int 直接使用

typing中

from typing import List, Dict

有多内置类型,List、Dict、Tuple等

from typing import Dict, List, Tuple

# List[int] 表示 内部值为int类型的列表

# Dict[str, int] 表示字典,键为str,值为int

# Tuple(int, str, int)  表示元组,内部元素值依次为(int, str, int)
# Tuple(int, ...) 表示内部值全部为int的元组
Any

默认值,不加类型注解时,就是Any,任意类型都可以

Union

或。语法格式如 Union[int, str] 表示int或者str

from typing import Union

# Union[int] 等同于  int

# 多重Union会自动解开,重置类型会被忽略
# Union[Union[int, str], int]  等同于  Union[int, str]
Optional

可选的,和Union有些像,注意区分。一般有None默认值的时候使用。仅支持单个类型

from typing import Optional
Optional[int] 等同于 Union[int, None] 会给与默认值
类型别名

给类型一个名字,简化代码

from typing import List
Scores = List[float]
# 如果这里的类型很长 Tuple[int, float, str, bool],甚至可以多类型组合

# 和 score: List[float]是一样的
def get_sum_score(scores: Scores) -> float:
    """获取总分数"""
    print(sum(scores))
    return sum(scores)
自定义类型NewType
from typing import NewType

UserId = NewType("UserId", int)

def filter_user_name(user_id: UserId) -> str:
    """根据用户id获取用户名"""
    print(user_id)
    return ""

# 这里必须是 UserId()   否则就不符合类型检查
filter_user_name(UserId(123))
# filter_user_name(123)  无法通过类型检查
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-10-27 13:01:55  更:2021-10-27 13:02:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:23:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码