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>
目录
相关文章
|
存储 数据可视化
BPMN介绍说明(图解)
BPMN介绍说明(图解)
1721 0
|
数据处理 计算机视觉 Python
【目标检测】指定划分COCO数据集训练(车类,行人类,狗类...)
【目标检测】指定划分COCO数据集训练(车类,行人类,狗类...)
5804 0
|
9月前
|
设计模式 机器学习/深度学习 前端开发
Python 高级编程与实战:深入理解设计模式与软件架构
本文深入探讨了Python中的设计模式与软件架构,涵盖单例、工厂、观察者模式及MVC、微服务架构,并通过实战项目如插件系统和Web应用帮助读者掌握这些技术。文章提供了代码示例,便于理解和实践。最后推荐了进一步学习的资源,助力提升Python编程技能。
|
TensorFlow 算法框架/工具
成功解决AttributeError: module ‘tensorflow‘ has no attribute ‘get_variable‘
成功解决AttributeError: module ‘tensorflow‘ has no attribute ‘get_variable‘
|
前端开发 数据库 Python
Django入门全攻略:从零搭建你的第一个Web项目
Django入门全攻略:从零搭建你的第一个Web项目
|
开发工具 git
完美解决 fatal: unable to access ‘https://github.com/.../.git‘: Could not resolve host: github.com
完美解决 fatal: unable to access ‘https://github.com/.../.git‘: Could not resolve host: github.com
35854 1
|
城市大脑 人工智能 Cloud Native
云栖大会回顾|一文带你了解云栖大会14年
云栖大会历经14载,见证了中国计算产业的萌发与革新。从云计算到数据智能,从飞天操作系统到城市大脑,云栖大会在云栖小镇传递创新火种,描绘计算未来。
4253 8
|
机器学习/深度学习 算法 固态存储
选择性搜索算法(Selective Search)超详解(通俗易懂版)
选择性搜索算法(Selective Search)超详解(通俗易懂版)
选择性搜索算法(Selective Search)超详解(通俗易懂版)
|
弹性计算 负载均衡 小程序
阿里云服务器免费申请3个月试用攻略
阿里云服务器免费申请3个月试用攻略,阿里云服务器免费试用申请链接入口,阿里云个人用户和企业用户均可申请免费试用,最高可以免费使用3个月,阿里云服务器网分享阿里云服务器免费试用申请入口链接及云服务器配置
4531 0
CDR2023中文最新版本安装下载教程
CDR2023是最新发布的一款强大且专业的图像设计软件,适用于平面设计、装饰设计、产品包装设计等领域。coco玛奇朵其主要功能如下:
863 0