开发者社区> auqbllxiu> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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>

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python模块Typing.overload的使用
Python模块Typing.overload的使用
11 0
Python模块Typing.overload的使用
Python模块Typing.overload的使用
7 0
Python模块Typing.overload的使用
Python模块Typing.overload的使用
13 0
Python模块Typing.overload的使用
Python模块Typing.overload的使用
13 0
Python文本语音识别模块大比拼,看看青铜与王者的差别!
如果把Python比喻成游戏中的一个英雄,你觉得它是谁?对于Dota老玩家来说,我会想到钢琴手卡尔!感觉Python和卡尔一样,除了生孩子什么都可以做的角色。日常生活中,我们会涉及到很多语音播报的场景,比如郭德纲版的高德地图导航、超市门口的红外感知提醒欢迎光临、银行的自助叫号系统,等等...今天就和大家聊聊Python文本转语音,看看这些从青铜到王者的模块。
90 0
Python将被加入高考科目
Python将被纳入高考内容! 听闻浙江省信息技术课程改革方案已经出台,Python确定进入浙江省信息技术高考, 从2018年起浙江省信息技术教材编程语言将会从vb更换为Python。 其实不止浙江,教育大省北京和山东也确定要把Python编程基础纳入信息技术课程和高考的内容体系, Python语言课程化也将成为孩子学习的一种趋势。
2489 0
python中telnetlib模块的使用
一、Windows下开启Telnet服务 (详见:与Win7防火墙无缝结合 Telnet功能测试) 1、Windows 2000/XP/2003/Vista:默认已安装但禁止了Telnet服务 (1)开启Telnet:运行services.msc打开服务管理,找到Telnet服务项设置其启动类型为“自动”或者“手动”(更安全,只在需要的时候才启用),然后启动该服务即可。
2349 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Python系列直播第一讲——Python中的一切皆对象
立即下载
Python 脚本速查手册
立即下载
Python第五讲——关于爬虫如何做js逆向的思路
立即下载