前言

typing 是在 python 3.5 才有的模块

前置学习

Python 类型提示:https://www.cnblogs.com/poloyy/p/15145380.html

常用类型提示

https://www.cnblogs.com/poloyy/p/15150315.html

类型别名

https://www.cnblogs.com/poloyy/p/15153883.html

NewType

可以自定义创一个新类型

  • 主要用于类型检查
  • NewType(name, tp) 返回一个函数,这个函数返回其原本的值
  • 静态类型检查器会将新类型看作是原始类型的一个子类
  • tp 就是原始类型

实际栗子

# NewType
from typing import NewType UserId = NewType('UserId', int) def name_by_id(user_id: UserId) -> str:
print(user_id) UserId('user') # Fails type check
num = UserId(5) # type: int name_by_id(42) # Fails type check
name_by_id(UserId(42)) # OK print(type(UserId(5))) # 输出结果
42
42
<class 'int'>

可以看到 UserId 其实也是 int 类型

类型检查

使用 UserId 类型做算术运算,得到的是 int 类型数据

# 'output' is of type 'int', not 'UserId'
output = UserId(23413) + UserId(54341)
print(output)
print(type(output)) # 输出结果
77754
<class 'int'>

Callable

https://www.cnblogs.com/poloyy/p/15154008.html

TypeVar 泛型

https://www.cnblogs.com/poloyy/p/15154196.html

Any Type

https://www.cnblogs.com/poloyy/p/15158613.html

Python - typing 模块 —— NewType的更多相关文章

  1. Python - typing 模块 —— 常用类型提示

    前言 typing 是在 python 3.5 才有的模块 前置学习 Python 类型提示:https://www.cnblogs.com/poloyy/p/15145380.html 常用类型提示 ...

  2. Python - typing 模块 —— 类型别名

    前言 typing 是在 python 3.5 才有的模块 前置学习 Python 类型提示:https://www.cnblogs.com/poloyy/p/15145380.html 常用类型提示 ...

  3. Python - typing 模块 —— Callable

    前言 typing 是在 python 3.5 才有的模块 前置学习 Python 类型提示:https://www.cnblogs.com/poloyy/p/15145380.html 常用类型提示 ...

  4. Python - typing 模块 —— TypeVar 泛型

    前言 typing 是在 python 3.5 才有的模块 前置学习 Python 类型提示:https://www.cnblogs.com/poloyy/p/15145380.html 常用类型提示 ...

  5. Python - typing 模块 —— Any Type

    前言 typing 是在 python 3.5 才有的模块 前置学习 Python 类型提示:https://www.cnblogs.com/poloyy/p/15145380.html 常用类型提示 ...

  6. Python - typing 模块 —— Union

    前言 typing 是在 python 3.5 才有的模块 前置学习 Python 类型提示:https://www.cnblogs.com/poloyy/p/15145380.html 常用类型提示 ...

  7. Python - typing 模块 —— Optional

    前言 typing 是在 python 3.5 才有的模块 前置学习 Python 类型提示:https://www.cnblogs.com/poloyy/p/15145380.html 常用类型提示 ...

  8. python进阶(21)typing模块--类型提示支持

    typing介绍   Python是一门弱类型的语言,很多时候我们可能不清楚函数参数的类型或者返回值的类型,这样会导致我们在写完代码一段时间后回过头再看代码,忘记了自己写的函数需要传什么类型的参数,返 ...

  9. python类型检测最终指南--Typing模块的使用

    正文共:30429 字 预计阅读时间:76分钟 原文链接:https://realpython.com/python-type-checking/ 作者:Geir Arne Hjelle 译者:陈祥安 ...

随机推荐

  1. Linux:Ubuntu银河麒麟防火墙操作

    查看防火墙状态 #防火墙状态 sudo ufw status inactive状态是防火墙 关闭 状态 active状态是防火墙 开启 状态 开启防火墙 #开启防火墙 sudo ufw enable ...

  2. 虚拟机centos7环境搭建,系统分区,静态IP配置

    文章目录 1.虚拟机安装centos7 2.系统分区 3.配置静态IP centos7下载地址 http://mirrors.aliyun.com/centos/7/isos/x86_64/ Cent ...

  3. Python获取list中指定元素的索引

    在平时开发过程中,经常遇到需要在数据中获取特定的元素的信息,如到达目的地最近的车站,橱窗里面最贵的物品等等.怎么办?看下面 方法一: 利用数组自身的特性 list.index(target), 其中a ...

  4. C语言:size_t类型

    size_t 的全称应该是size type,就是说"一种用来记录大小的数据类型".通常我们用sizeof(XXX)操作,这个操作所得到的结果就是size_t类型.因为size_t ...

  5. uni-app中当uni.navigateTo传的参数为object时,通过传递的不同参数,在显示单页面内通过v-if判断显示出对应的内容(可实现多页面效果)

    通过uni-app中当uni.navigateTo传的参数为object时,通过传递的不同参数,在显示单页面内通过v-if判断显示出对应的内容(可实现多页面效果) 起始页跳转到对应页面,并传递参数(o ...

  6. ES6新增语法(四)——面向对象

    ES6中json的2个变化 简写:名字和值相同时,json可以可以简写 let a=12,b=5; let json = { a, b } console.log(json) // { a:12 , ...

  7. 团队开发day06

    实现功能,通过连接,获取到品牌商存入数据库的数据, 将数据返回到list集合,展示在安卓前端 出现问题:servlet响应请求返回数据格式出错,利用gson类将java类 转化为jsonobject对 ...

  8. tomcat隐藏版本信息防止人为扫描特定版本漏洞攻击服务器

    1.进入tomcat的lib目录找到catalina.jar文件 cd /dir/apache-tomcat-10.0.2/lib/ 2.解压文件 unzip catalina.jar 进入org/a ...

  9. [刘阳Java]_为什么要前后端分离

    前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构.弹性计算架构.微服务架构.多 ...

  10. [刘阳Java]_MyBatis_实体关系映射_第8讲

    MyBatis既然是一个ORM框架,则它也有像Hibernate那样的一对多,多对多,多对一的实体关系映射功能.下面我们就来介绍一下如何使用MyBatis的实体关系映射 1.MyBatis实体关系映射 ...