如果这是用于Python 2.x或Python 3.2+,则也可以使用
callable()。它曾经不推荐使用,但是现在不推荐使用,因此你可以再次使用它。你可以在此处阅读讨论内容:http : //bugs.python.org/issue10518。你可以执行以下 *** 作:
callable(obj)
如果这是针对Python 3.x但在3.2之前的版本,请检查对象是否具有
__call__属性。你可以执行以下 *** 作:
hasattr(obj, '__call__')
经常建议的
types.FunctionTypes方法是不正确的,因为它无法涵盖你可能希望其通过的许多情况,例如内置函数:
>>> isinstance(open, types.FunctionType)False>>> callable(open)True
检查duck型物体属性的正确方法是询问它们是否发出嘎嘎声,而不是看它们是否适合鸭子大小的容器。
types.FunctionType除非你对功能是什么非常明确,否则请不要使用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)