Python模块Typing.overload的使用

简介: Python模块Typing.overload的使用

环境:

python 版本 3.5.6

两种方式都是用于类型检查

typing.TypeVar

typing.overload

代码实例

import typing

T = typing.TypeVar('T', str, int)


def foo(name: T) -> str:
    return f"hello {name}"

# 如果输入的类型不对,PyCharm中会提示:
# Expected type 'T', got 'float' instead
print(foo(23.0))
# -*- coding: utf-8 -*-


import typing


# 如果没有这个定义,参数传入字符串的时候会有提示
@typing.overload
def get_page(page: str) -> int:
pass


# 一定要定义一个没有装饰器的函数
def get_page(page: int) -> int:
return page


print(type(get_page('12')))
<class 'str'>

如果按照Java中函数重载的概念,传入str类型的参数,应该调用get_page(page: str)

测试发现解释器并没有调用被 @typing.overload 装饰的函数,如果调用应该返回None(函数里什么也没返回)

overload仅仅是给检查工具用的

参考

Python3标准库漫游之Typing.overload

            </div>
目录
相关文章
|
SQL 关系型数据库 数据库
万字带你走过数据库的这激荡的三年
2023 年数据库回顾:向量数据库虽然大火,但没有技术壁垒;2022 年数据库回顾:江山代有新人出,区块链数据库还是那个傻主意;2021 年数据库回顾:性能之争烽烟起,不如低调搞大钱…
622 3
万字带你走过数据库的这激荡的三年
|
SQL 物联网 数据处理
NL2SQL进阶系列(1):DB-GPT-Hub、SQLcoder、Text2SQL开源应用实践详解
NL2SQL进阶系列(1):DB-GPT-Hub、SQLcoder、Text2SQL开源应用实践详解
NL2SQL进阶系列(1):DB-GPT-Hub、SQLcoder、Text2SQL开源应用实践详解
|
存储 NoSQL 搜索推荐
详解:图数据库 GDB五大应用场景
图数据库GDB针对高度互联数据的存储和查询场景进行设计,并在内核层面进行了大量优化,非常适合社交网络、欺诈检测、推荐引擎、知识图谱、网络/IT运营等高密互连数据集的场景。
3512 0
|
索引 Python
获取dataframe的第一行
在pandas中,可以使用`iloc`函数获取dataframe的第一行。以下是一个例子
1558 0
|
Java Maven
Mac安装Maven(图文解说详细版)
Mac安装Maven(图文解说详细版)
Mac安装Maven(图文解说详细版)
|
NoSQL Java Maven
【巧立名目】利用IDEA工具修改Maven多模块项目标识包名全过程
【巧立名目】利用IDEA工具修改Maven多模块项目标识包名全过程
2150 0
【巧立名目】利用IDEA工具修改Maven多模块项目标识包名全过程
|
Python
Python——获取网页文本内容
Python——获取网页文本内容
529 0
|
Java Python
Python模块Typing.overload的使用
Python模块Typing.overload的使用
168 0
|
Linux API 数据库
通用唯一标识码UUID的介绍及使用。
什么是UUID? UUID全称:Universally Unique Identifier,即通用唯一识别码。 UUID是由一组32位数的16进制数字所构成,是故UUID理论上的总数为16^32 = 2^128,约等于3.4 x 10^38。也就是说若每纳秒产生1兆个UUID,要花100亿年才会将所有UUID用完。
2097 0
|
C语言
exit(0)与exit(1),return三者区别(详解)
exit(0):正常运行程序并退出程序; exit(1):非正常运行导致退出程序; return():返回函数,若在主函数中,则会退出函数并返回一值。 详细说:   1. return返回函数值,是关键字;  exit 是一个函数。
1997 0