我看过typing.Callable
,但没有找到任何有用的文档。到底是什么typing.Callable
?
Mad*_*ist 42
typing.Callable
是用于指示可调用的类型。大多数支持该()
运算符的 Python 类型都是collections.abc.Callable
. 示例包括函数、classmethod
s、staticmethod
s、绑定方法和 lambda。
总之,任何带有__call__
方法(这是如何()
实现的)的东西都是可调用的。
PEP 677尝试引入隐式带箭头的元组语法,以便Callable[[int, str], list[float]]
可以更直观地表达类似的内容(int, str) -> list[float]
。PEP 被拒绝,因为考虑到增加的维护负担和可能的混乱空间,新语法的好处被认为不够充分。
Ant*_*der 21
该typing
模块用于类型提示:
该模块为类型提示提供运行时支持。
文档提供了这个示例:
def greeting(name: str) -> str:
return 'Hello ' + name
Run Code Online (Sandbox Code Playgroud)
在函数中
greeting
,参数名称应为类型str
和返回类型str
。子类型被接受作为参数。
typing.Callable
假设您要定义一个函数,该函数接受两个整数并对它们执行某种操作以返回另一个整数:
def apply_func(a: int, b: int, func) -> int:
return func(a, b)
Run Code Online (Sandbox Code Playgroud)
func
因此,参数的预期类型apply_func
是“可以调用的东西(例如函数),它接受两个整数参数并返回一个整数”:
typing.Callable[[int, int], int]
Run Code Online (Sandbox Code Playgroud)
使用类型提示使您能够执行类型检查。如果您使用 PyCharm 或 Visual Studio Code 等 IDE,如果您使用意外类型,您将获得视觉反馈:
归档时间: |
|
查看次数: |
54036 次 |
最近记录: |