Python 3:“;名称错误:名称';功能';“未定义”;

Python 3:“;名称错误:名称';功能';“未定义”;,python,python-3.x,pycharm,Python,Python 3.x,Pycharm,运行 使用Python3.6.2 def foo(bar: function): bar() foo(lambda: print("Greetings from lambda.")) 输出Python中没有定义名称函数,没有。注释仍然是Python表达式,必须引用有效名称 您可以改为使用类型暗示,表示条是可调用的;使用: 这定义了一个不带参数的可调用类型,其返回值可以是任何值(我们不关心)。谢谢,我希望它是有效的,因为通过print(myfunction)检查functions类。产

运行

使用Python3.6.2

def foo(bar: function):
    bar()

foo(lambda: print("Greetings from lambda."))

输出

Python中没有定义名称
函数
,没有。注释仍然是Python表达式,必须引用有效名称

您可以改为使用类型暗示,表示
是可调用的;使用:


这定义了一个不带参数的可调用类型,其返回值可以是任何值(我们不关心)。

谢谢,我希望它是有效的,因为通过
print(myfunction)检查functions类。
产生
@qwertz:当然,但这并不意味着存在引用该类型的全局名称
function
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'function' is not defined
def myfunction():
    pass

print(myfunction.__class__)
from typing import Any, Callable

def foo(bar: Callable[[], Any]):
    bar()