我有一个列表,其中一些也可以是函数。如果它是一个函数,我想执行它。为此,我进行了类型检查。这通常适用于其他类型,如 str、int 或 float。但是对于一个功能它似乎不起作用:
>>> def f():
... pass
...
>>> type(f)
<type 'function'>
>>> if type(f) == function: print 'It is a function!!'
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'function' is not defined
>>>
有人知道如何检查函数类型吗?
最佳答案
不要检查类型,检查操作。您实际上并不关心它是否是一个函数(例如,它可能是一个带有 __call__
方法的类实例)——您只关心它是否可以被调用。所以使用callable(f)
。
关于python - 如何检查 Python 中的函数类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17612690/