2011-11-08 12 views
7

Im sólo va a través de algunos documentos pitón de ayuda y me encontré con el siguiente fragmento de código:isinstance (objeto, tipo) en python

isinstance(object,type) 

puede alguien explicar lo que no significa escribir en la declaración anterior?

Gracias, Vineel

+0

¿Era parte de un ejemplo de código de hormigón, o más pseudocódigo-esque (por ejemplo, una firma)? O mejor, mostrar el contexto. El fragmento lamentablemente tiene sentido para ambos. – delnan

+0

Si tiene dudas, lea los documentos –

Respuesta

11

type debe ser un objeto que denota un tipo/clase, como int o str. Por ejemplo, isinstance(1, int) evalúa a True, mientras que isinstance(sys.stdin, str) evalúa a False. Si ha definido un class Foo, entonces Foo también es un objeto de tipo.

Editar: como @delnan notas, type en sí es también un tipo en Python, por lo isinstance(str, type) es cierto porque str es un tipo, mientras que isinstance('foo', type) es falso. object también es un tipo en Python, y es la raíz de la jerarquía de tipos.

+0

@vineel: actualizó la respuesta. –

+0

thanQ ... Me aclaró :) – vineel

0

Esta declaración comprueba si object tiene el tipo de type. La variable type debe ser una clase.

0
isinstance(object, classinfo) 

devueltos TRUE si el argumento objeto es una instancia del argumento ClassInfo, o de una subclase (directo, indirecto o virtual) de los mismos. También devuelve true si classinfo es un tipo de objeto (clase de estilo nuevo) y object es un objeto de ese tipo o de una subclase (directa, indirecta o virtual) de los mismos. Si objeto no es una instancia de clase o un objeto del tipo dado, la función siempre devuelve falso. Si classinfo no es ni un objeto de clase ni un objeto de tipo, puede ser una tupla de clase o tipo de objetos, o puede contener recursivamente otras tuplas (no se aceptan otros tipos de secuencia). Si classinfo no es una clase, tipo o tupla de clases, tipos y tales tuplas, se genera una excepción TypeError.

Modificado en la versión 2.2: Se ha agregado compatibilidad con una tupla de información de tipo .

Citado de: http://docs.python.org/library/functions.html#isinstance

Cuestiones relacionadas