【发布时间】:2017-01-11 16:12:30
【问题描述】:
我希望我的函数被注释为它接受另一个函数作为参数。起初我认为这会很好地工作:
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。并且仅为一个注释导入类型也很奇怪。 typing library 也没有任何可以帮助我替换它的东西。
另外,FunctionType 将如何与类型注释强制库一起工作(我看到其中很少有人飞来飞去)
【问题讨论】:
标签: python python-3.x types type-hinting