python中的isinstance(对象,类型)

时间:2011-11-08 14:24:46

标签: python python-3.x

我刚刚浏览了一些python帮助文档,并遇到了以下代码:

isinstance(object, type)

有人可以解释上述陈述中type的含义吗?

谢谢,
Vineel

4 个答案:

答案 0 :(得分:13)

type必须是表示类型/类的对象,例如intstr。例如,isinstance(1, int)评估为True,而isinstance(sys.stdin, str)评估为False。如果您已定义class Foo,则Foo也是类型对象。

编辑:正如@delnan所说,type本身也是Python中的一种类型,因此isinstance(str, type)为真,因为str是一种类型,而isinstance('foo', type) {1}}是假的。 object也是Python中的一种类型,是类型层次结构的根。

答案 1 :(得分:1)

isinstance(object, classinfo)
object-要检查的对象
classinfo-类和类型的类,类型或元组

isinstance()返回:
True,如果对象是类的实例或子类,或元组的任何元素
    False否则
    例如:a = 1 + 2j

print(isinstance(1+2j, complex))
output : True

答案 2 :(得分:0)

此语句检查object的类型是否为typetype变量应该是一个类。

答案 3 :(得分:0)

isinstance(object, classinfo)
  

如果object参数是classinfo参数的实例,或者是(直接,间接或虚拟)子类的实例,则返回true。如果classinfo是类型对象(新样式类)并且object是该类型的对象或其(直接,间接或虚拟)子类,则也返回true。如果object不是类实例或给定类型的对象,则该函数始终返回false。如果classinfo既不是类对象也不是类型对象,它可能是类或类型对象的元组,或者可能递归地包含其他这样的元组(不接受其他序列类型)。如果classinfo不是类,类型和类别等的类,类型或元组,则会引发TypeError异常。

     

在2.2版中更改:支持类型信息元组   加入。

引自:http://docs.python.org/library/functions.html#isinstance