前言

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

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

Callable

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

TypeVar 泛型

源码解析使用方式

任意类型

# 可以是任意类型
T = TypeVar('T') def test(name: T) -> T:
print(name)
return name test(11)
test("aa") # 输出结果
11
aa

指定类型

# 可以是 int,也可以是 str 类型
AA = TypeVar('AA', int, str) num1: AA = 1
num2: AA = "123"
print(num1, num2) num3: AA = [] # 输出结果
1 123

自定义泛型类

暂时没搞懂这个有什么用,先不管了

# 自定义泛型
from typing import Generic T = TypeVar('T') class UserInfo(Generic[T]): # 继承Generic[T],UserInfo[T]也就是有效类型
def __init__(self, v: T):
self.v = v def get(self):
return self.v l = UserInfo("小菠萝") print(l.get()) # 输出结果
小菠萝

Any Type

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

 

Python - typing 模块 —— TypeVar 泛型的更多相关文章

  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 模块 —— NewType

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

  4. Python - typing 模块 —— Callable

    前言 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. [小技巧] google map使用

    在网页中打开 google map 中,可以使用 shift + - 来缩小地图,shift + + 来放大地图.

  2. 2012年第三届蓝桥杯C/C++程序设计本科B组省赛题目 海盗比酒量 结果填空

    ** 一.题目 ** 海盗比酒量 有一群海盗(不多于20人),在船上比拼酒量.过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了.再打开一瓶酒平分,又有倒下的,再次重复- 直到开了第4瓶酒,坐 ...

  3. 输出数组中出现次数最多且值最大的数字----python

    class Solution(): #求最多的数 def find_max(self,list): num = 0 for i in list: print(i) if list.count(i) & ...

  4. ESP32存储blog笔记

    基于ESP-IDF4.1 1 #include <stdio.h> 2 #include "freertos/FreeRTOS.h" 3 #include " ...

  5. Outlook配置163邮箱

    一.在163邮箱设置处设置POP3/SMTP/IMAP 二.开启客户端授权码 三.打开Outlook,选择手动设置 选择POP/IMAP 密码是上文中的授权码 点击其它设置,勾选以下选项 点击完成即可

  6. Scala学习——函数高级操作

    scala函数高级操作 一.字符串高级操作 多行字符串和插值 package top.ruandb.scala.Course06 object StringApp { def main(args: A ...

  7. Python 创建一个Django项目

    1 环境搭建及创建 1) 安装Django 方法一:pip install django 方法二:Pycharm File--settings--Project--Python Interpreter ...

  8. PHP获取当日或本月时间戳范围

    在mysql数据库中使用int类型保存时间戳时,一般在程序中可能会用到统计当日,当月的一些数据.那么可以用如下的方式限定时间范围:   //当日销售 $today_start = strtotime( ...

  9. 配置软ISCSI存储

    说明:这里是Linux服务综合搭建文章的一部分,本文可以作为单独使用RedHat Enterprise Linux 7搭建软ISCSI的参考. 注意:这里所有的标题都是根据主要的文章(Linux基础服 ...

  10. 基于Flask开发网站 -- 前端Ajax异步上传文件到后台

    大家好,我是辰哥~ 辰哥最近利用空闲时间在写一个在线可视化平台,过程中也觉得一些技术还是比较有意思的,所以就以模块化的形式分享出来.如:从网页界面(前端)上传文件到服务器(后端). 放一下该模块的界面 ...