Running
def foo(bar: function):
bar()
foo(lambda: print("Greetings from lambda."))
with Python 3.6.2 yields
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'function' is not defined
However, removing the type annotation works as expected.
PyCharm additionally gives the warning 'function' object is not callable
on line bar()
.
edit: As stated in my comment of Pieters’ answer, this question raised, because
def myfunction():
pass
print(myfunction.__class__)
outputs <class 'function'>
.