【发布时间】:2017-12-01 12:24:53
【问题描述】:
在 Python3 中,可以将类型添加到函数的参数中:
def foo(bar: str = "default") -> str:
"""
@param bar: a textual value
"""
return "test"
现在我有两个问题。首先,如何为 回调函数 做到这一点?意思是,如何在函数头中定义该回调的签名?
def foo(callback) -> str:
"""
@param callback: function(value: str) -> str
"""
# calculate some intermediate stuff
my_var = ...
return callback(my_var)
其次,如何为元组做到这一点。这将包括定义该值是元组类型并且应该有两个值(没有三元组等)。
def foo(value) -> str:
"""
@param value: tuple of strings
"""
v1, v2 = value
return v1 + v2
感谢您的 cmets 和回答。
【问题讨论】:
-
回调是可调用的
-
但回调必须满足需要调用的签名。见上面的例子。
-
在您的示例回调注释中将是
typing.Callable[[str], str] -
还有一个问题:如果你在一个类中定义了一个静态方法,而该方法具有相同类型/类的参数,那么该类型是未知的......
标签: python callback parameter-passing user-defined-functions