python 3 : how to check if an object is a function?

标签 python class function python-3.x

<分区>

我是否正确假设所有函数(内置或用户定义的)都属于同一个类,但该类默认情况下似乎没有绑定(bind)到任何变量?

如何检查一个对象是否是一个函数?

我想我可以做到:

def is_function(x):
  def tmp()
    pass
  return type(x) is type(tmp)

它看起来不太整洁,我什至不能 100% 确定它是完全正确的。

最佳答案

在 python2 中:

callable(fn)

在 python3 中:

isinstance(fn, collections.Callable)

因为 Callable 是一个抽象基类,这等同于:

hasattr(fn, '__call__')

关于 python 3 : how to check if an object is a function?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4202301/

相关文章:

javascript - 在 javascript 中用不同的数字替换数组元素

SQL 聚合函数

python - 索引越界 (Python)

c++ - 类和类型的问题

python - 如何替换多索引第 n 级中等于 x 的所有值

python - 在实例方法中更改类实例

arrays - typescript :具有属性/数组作为类的数组

java - 调用具有简单返回的函数与仅进行检查有区别吗?

python - PyQt5中使用cv2.imshow和drawpixmap的颜色图是不同的

python - 从 python 发起 SSH 隧道的问题