Python:类型化方法参数
在Python3中,可以将类型添加到函数的参数中:Python:类型化方法参数,python,callback,parameter-passing,user-defined-functions,Python,Callback,Parameter Passing,User Defined Functions,在Python3中,可以将类型添加到函数的参数中: def foo(bar: str = "default") -> str: """ @param bar: a textual value """ return "test" 现在我有两个问题。首先,对于回调函数,如何做到这一点?也就是说,如何在函数头中定义回调的签名 def foo(callback) -> str: """ @param callback: function(va
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)
第二,如何对元组执行。这将包括定义值的类型为tuple,并且应该有两个值(没有三元组等)
感谢您的评论和回答。要指定回调函数的签名,您可以使用以下命令:
from typing import Callable
def foo(callback: Callable[[str], str]) -> str:
# calculate some intermediate stuff
my_var = '...'
return callback(my_var)
对于两个字符串的组合,可以使用:
from typing import Tuple
def foo(value: Tuple[str, str]) -> str:
v1, v2 = value
return v1 + v2
请参阅回调是可调用的,但回调必须满足需要在其中调用is的签名。参见上面的示例。在您的示例中,回调注释将是
typing.Callable[[str],str]
还有一个问题:如果您在类中定义了一个静态方法,而该方法具有相同类型/类的参数,那么该类型是未知的。。。
from typing import Tuple
def foo(value: Tuple[str, str]) -> str:
v1, v2 = value
return v1 + v2