python - 如何检查 Python 中的函数类型?

标签 python function types

我有一个列表,其中一些也可以是函数。如果它是一个函数,我想执行它。为此,我进行了类型检查。这通常适用于其他类型,如 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/

相关文章:

python - TensorFlow 中可训练变量和不可训练变量的串联

Python:一些 "__magic__"属性从该函数中引用一个函数

Python Linux 操纵杆支持吗?

javascript - 如何在 TypeScript 中链接函数参数类型?

python - 如何在图像中的点周围绘制正方形

swift - Swift 中没有带有标识符错误的 Segue?

c++ - 当函数按值传递参数时,复制构造函数如何工作?

c++ - 在类或结构中调用静态函数的好习惯

Javascript 关联数组到整数?

c# - C#中超出基本类型的数字