我有一个变量,x
我想知道它是否指向一个函数。
我曾希望我可以做些类似的事情:
>>> isinstance(x, function)
但这给了我:
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'function' is not defined
我选择的原因是
>>> type(x)
<type 'function'>
如果这是用于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
除非你对功能是什么非常明确,否则请不要使用。
问题内容: 确定JavaScript中的变量是否为数组的最佳事实标准跨浏览器方法是什么? 在网络上搜索时,有很多不同的建议,其中有些是好的,有些是无效的。 例如,以下是基本方法: 但是,请注意,如果数组为空,或者obj实际上不是数组,但是实现了length属性,将会发生什么情况。 那么,从实际工作,跨浏览器和仍有效执行的角度来看,哪种实现是最佳的呢? 问题答案: JS中对象的类型检查是通过完成的,
本文向大家介绍如何检查JavaScript变量是否为函数类型?,包括了如何检查JavaScript变量是否为函数类型?的使用技巧和注意事项,需要的朋友参考一下 使用“ typeof”检查它是否是一个函数。您可以尝试运行以下代码来检查JavaScript变量是否为函数类型: 示例
问题内容: 如何检查变量是否为整数? 问题答案: 如果你需要这样做,请执行 除非你使用的是Python 2.x,否则需要 不要使用type。在Python中,这几乎永远不是正确的答案,因为它阻止了多态性的所有灵活性。例如,如果你子类化int,则你的新类应注册为int,但type不会这样做: 这符合Python强大的多态性:你应该允许行为类似于的任何对象int,而不是强制将其作为一个对象。 BUT
问题内容: 我想知道如何检查变量是否是类(不是实例!)。 我试图使用该函数来执行此操作,但我不知道类将具有哪种类型。 例如,在以下代码中 我试图用 ??? 代替“ ” ,但我意识到这是python中的关键字。 问题答案: 更好的是:使用该功能。
问题内容: 假设我有任何变量,定义如下: 我想要一个检查变量类型是否像函数一样的函数。即: 如何检查变量是否为上述定义的类型? 问题答案: 当然,下划线的方式效率更高,但是当效率不是问题时,最好的检查方法是写在@Paul Rosania链接的下划线页面上。 受下划线启发,最终的isFunction函数如下:
问题内容: 我想检查一个变量是否存在。现在我正在做这样的事情: 是否有其他方法无一例外? 问题答案: 要检查是否存在局部变量: 要检查是否存在全局变量: 要检查对象是否具有属性: