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>
目录
相关文章
|
6月前
|
Python
Python 的其他主题:什么是 Duck Typing?Python 中如何使用 Duck Typing?
Python 的其他主题:什么是 Duck Typing?Python 中如何使用 Duck Typing?
48 0
|
Python
Python - typing 模块 —— TypeVar 泛型
Python - typing 模块 —— TypeVar 泛型
822 0
Python - typing 模块 —— TypeVar 泛型
|
2天前
|
监控 Python
深入理解Python中的装饰器(Decorators)
深入理解Python中的装饰器(Decorators)
|
5月前
|
存储 安全 开发者
python小知识-typing注解你的程序
typing 是 Python 的一个标准库,它提供了类型注解的支持,但并不会强制类型检查。类型注解在 Python 3.5 中引入,并在后续版本中得到了增强和扩展。typing 库允许开发者为变量、函数参数和返回值等提供预期的类型信息,这有助于代码的可读性、可维护性和文档化。此外,一些第三方工具(如 MyPy)可以使用这些类型注解进行静态类型检查。【6月更文挑战第1天】
52 1
|
6月前
|
监控 Python
深入解析Python中的装饰器(Decorators)及其实用场景
装饰器是Python中一个强大且灵活的功能,它允许在不修改原有函数或类代码的情况下,动态地为其添加新的功能。本文不仅介绍了装饰器的基本概念、语法和工作原理,还通过具体实例展示了装饰器在日志记录、权限校验、性能分析等实用场景中的应用,旨在帮助读者深入理解装饰器的强大之处,并激发其在实际项目中的创新应用。
Python-staticmethod静态方法
Python-staticmethod静态方法
59 0
|
6月前
|
Python
|
Python
python|typing模块的介绍
python|typing模块的介绍
110 0
|
Python
Python @classmethod和@staticmethod装饰器使用介绍
Python @classmethod和@staticmethod装饰器使用介绍
83 0
|
Python
Python中三个装饰器函数用法(property、staticmethod、classmethod )
Python中三个装饰器函数用法(property、staticmethod、classmethod )
130 0
下一篇
无影云桌面