您当前的位置: 首页 >  Python

彭世瑜

暂无认证

  • 2浏览

    0关注

    2791博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Python模块Typing.overload的使用

彭世瑜 发布时间:2020-04-09 16:33:21 ,浏览量:2

环境: 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')))

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

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

overload仅仅是给检查工具用的

参考 Python3标准库漫游之Typing.overload

关注
打赏
1665367115
查看更多评论
立即登录/注册

微信扫码登录

0.1754s