2011-11-08 147 views
7

我只是经历了一些Python的帮助文档和整个下面的代码段传来:isinstance(对象类型)在python

isinstance(object,type) 

谁能解释这是什么类型的上述声明是什么意思?

谢谢, Vineel

+0

是它的具体的代码示例,以上伪代码式的(例如,签名)的一部分?或者更好的,展示上下文。这段代码可悲的是对两者都有意义。 – delnan

+0

如有疑问请阅读文档 –

回答

11

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

编辑:作为@delnan笔记,type本身也是Python中的类型,所以isinstance(str, type)是正确的,因为str是一个类型,而isinstance('foo', type)是假的。 object也是Python中的一种类型,并且是类型层次结构的根。

+0

@vineel:更新了答案。 –

+0

thanQ ...它清除了我:) – vineel

0

该声明检查object的类型是typetype变量应该是一个类。如果对象参数是CLASSINFO参数的实例,或其(直接,间接或虚拟的)亚类的

0
isinstance(object, classinfo) 

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

在版本2.2中更改:添加了对类型信息元组的支持 。

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