我希望我的函数被注释为接受另一个函数作为参数。起初我认为这样会很顺利:
def my_function(func_argument: function):
pass
然而函数未解决的引用。我已经查看了内置函数,但是它确实不在那里,与我通常使用的str, int和其他函数不同。但是,它一定存在于某个地方,因为:
>>> def my_function():
... pass
...
>>> x = my_function
>>> type(x)
<class 'function'>
>>> type(x).__name__
'function'
函数类在哪里定义,为什么它不在内置函数中?我的原始尝试是否应该是正确的解决方案?目前我使用了
types.FunctionType
进行注释,但感觉不太对,因为我们在其他地方都使用 str
而非 types.StringType
进行提示。而且仅为一个注释导入 types 也很奇怪。 typing
库也没有任何可以帮助我替换这个的内容。此外,如果使用类型注释强制执行库(我看到有几个这样的库),
FunctionType
会如何工作?
None
可以用于那些不返回任何内容的函数,它们实际上返回的是None
。 - Moses Koledoye