2011-11-08 15 views
7

Im solo passando attraverso alcuni documenti pitone di aiuto e mi sono imbattuto il seguente pezzo di codice:isinstance (oggetto, tipo) in pitone

isinstance(object,type) 

qualcuno può spiegare che cosa significa il tipo significa nella dichiarazione di cui sopra?

Grazie, Vineel

+0

Era parte di un esempio di codice di cemento, o più pseudocodice-esque (ad esempio una firma)? O meglio, mostra il contesto. Il frammento ha tristemente senso per entrambi. – delnan

+0

In caso di dubbio leggere i documenti –

risposta

11

type deve essere un oggetto che denota un tipo/classe, come int o str. Ad esempio, isinstance(1, int) restituisce True, mentre isinstance(sys.stdin, str) restituisce False. Se hai definito uno class Foo, allora anche Foo è un oggetto di testo.

Edit: come @delnan note, type stesso è anche un tipo in Python, quindi isinstance(str, type) è vero perché str è un tipo, mentre isinstance('foo', type) è falso. object è anche un tipo in Python ed è la radice della gerarchia di tipi.

+0

@vineel: aggiornata la risposta. –

+0

thanQ ... mi ha chiarito :) – vineel

0

Questa istruzione verifica se object ha il tipo di type. La variabile type dovrebbe essere una classe.

0
isinstance(object, classinfo) 

ritorno vero se l'argomento oggetto è un'istanza dell'argomento classinfo, o di una sottoclasse (diretto, indiretto o virtuale) thereof. Restituisce anche true se classinfo è un oggetto di tipo (classe new-style) e object è un oggetto di quel tipo o di una sua sottoclasse (diretta, indiretta o virtuale). Se object non è un'istanza di classe o un oggetto del tipo specificato, la funzione restituisce sempre false. Se classinfo non è né un oggetto di classe né un oggetto di tipo, può trattarsi di una tupla di oggetti di classe o di tipo, oppure può contenere ricorsivamente altre tuple di questo tipo (non sono accettati altri tipi di sequenza). Se classinfo non è una classe, un tipo o una tupla di classi, tipi e tuple, viene sollevata un'eccezione TypeError.

Modificato nella versione 2.2: il supporto per una tupla di informazioni di tipo è stato aggiunto .

Citato da: http://docs.python.org/library/functions.html#isinstance

Problemi correlati