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>
目录
相关文章
|
Java Android开发
Android 自定义注解之编译时注解(RetenttionPolicy.CLASS)
注解处理器(Annotation Processor) 注解处理器是javac的一个工具,它用来在编译时扫描和处理注解(Annotation)。你可以自定义注解,并注册到相应的注解处理器,由注解处理器来处理你的注解。
2205 0
|
C#
WPF中实现多选ComboBox控件
原文:WPF中实现多选ComboBox控件 在WPF中实现带CheckBox的ComboBox控件,让ComboBox控件可以支持多选。 将ComboBox的ItemsSource属性Binding到一个Book的集合, public class Book { ...
3782 0
Qt http的认证方式以及简单实现
以上就是Qt实现HTTP认证的基本步骤。需要注意的是,以上代码未进行错误处理,实际使用时需要根据具体情况进行相应的错误处理。
260 1
|
移动开发 监控
表格中有WKWebView底部有空白问题及解决方案优缺点
表格中有WKWebView底部有空白问题及解决方案优缺点
182 0
|
安全 测试技术 API
urllib3库的介绍以及使用
`urllib3`是Python的HTTP库,支持HTTP/HTTPS,自动管理连接池,提供代理、证书配置,重定向处理等功能。其优势在于连接池管理和HTTPS支持。要安装,使用`pip install urllib3`。发起HTTP请求如`http.request(&#39;GET&#39;, &#39;http//example.com&#39;)`。处理响应包括状态码、头部和内容。高级功能包括连接池管理、超时和重试策略。注意线程安全、资源释放及错误处理。官方文档和相关文章可提供更多信息。
524 0
|
缓存 机器人 芯片
CPU_X86架构和ARM架构入门篇
CPU_X86架构和ARM架构入门篇
883 0
|
数据采集 存储 定位技术
ArcGIS校园3D展示图制作详细教程
ArcGIS校园3D展示图制作详细教程
405 0
【python】使用python中的pillow生成gif动态图
在之前的文章中,介绍了使用imageio生成gif动态图片,十分方便,简单,容易上手。 我发现pillow这个库也可以生成gif动态图片。
【python】使用python中的pillow生成gif动态图
【python】使用python中的imageio生成gif动态图
下面分享一个用代码制作gif动图的教程
【python】使用python中的imageio生成gif动态图