Python - typing 模块 Typevar

前言

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

原文链接:https://blog.csdn.net/qq_33801641/article/details/119793104

https://blog.csdn.net/lly1122334/article/details/106355932?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0.pc_relevant_paycolumn_v3&spm=1001.2101.3001.4242.1&utm_relevant_index=3

posted on 2022-03-29 15:39  -G  阅读(118)  评论(0编辑  收藏  举报

导航