won*_*ton 4 python type-hinting python-2.7 python-3.x
我有一个接受lambda的函数:
def my_function(some_lambda):
# do stuff
some_other_variable = some_lambda(some_variable)
my_function(lambda x: x + 2)
Run Code Online (Sandbox Code Playgroud)
我想输入传递的lambda函数.
我试过了
def my_function(some_lambda: lambda) -> None:
# SyntaxError: invalid syntax
from typing import Lambda
# ImportError: cannot import name 'Lambda'
Run Code Online (Sandbox Code Playgroud)
我的IDE在2.7跨式类型提示上抱怨类似的东西,例如
def my_function(some_lambda: lambda) -> None:
# type: (lambda) -> None
# formal parameter name expected
Run Code Online (Sandbox Code Playgroud)
当你想到它时,这是显而易见的,但是需要一段时间才能注册.lambda是一个函数.没有函数类型,但包中有一个Callable类型typing.解决这个问题的方法是
from typing import Callable
def my_function(some_lambda: Callable) -> None:
Run Code Online (Sandbox Code Playgroud)
Python 2版本:
from typing import Callable
def my_function(some_lambda):
# type: (Callable) -> None
Run Code Online (Sandbox Code Playgroud)