繁体   English   中英

如何定义可调用参数的签名?

[英]How to define signature of a callable argument?

假设我有一个接受可调用函数

def foo(bar):
    print(bar(1, 2))

声明bar(..)接受两个int并返回一个str的最佳方法是什么? 有没有比文档更明确的方法?

通过typing Callable类型,可以指定参数类型和可调用值的返回类型。

from typing import Callable

def foo(bar: Callable[[int,int],str]):
    print(bar(1, 2))

请注意,由于Python是动态类型的,因此在某种程度上,类型提示只是文档。 但是,可以将mypy等第三方工具用于静态类型分析,以帮助确保您的代码不会传递错误类型的值。

Python是动态类型的,这意味着解释器的类型会在代码运行时进行检查,并且该类型会随着时间而变化。

PEP 484引入了类型提示。 您可以按照以下语法进行操作:

def bar( a: int, b: int) -> str:
    return 

def foo(bar: callable) -> None:
    print(bar(1, 2))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM