2011-11-08 2 views
7

im po prostu przechodząc przez niektórych dokumentów pyton pomocy i natknąłem się na następujący fragment kodu:isinstance (obiekt, typ) w Pythonie

isinstance(object,type) 

może ktoś wytłumaczyć co to znaczy wpisać w powyższym stwierdzeniem?

Dzięki, Vineel

+0

była ona część betonowej przykładowego kodu, lub więcej pseudokod esque (na przykład podpis)? Albo lepiej, pokaż kontekst. Fragment niestety ma sens dla obu. – delnan

+0

W razie wątpliwości przeczytaj dokument –

Odpowiedz

11

type musi być przedmiotem oznaczający typu/klasy, takie jak int lub str. Np., isinstance(1, int) ocenia się na True, a isinstance(sys.stdin, str) ocenia na False. Jeśli zdefiniowałeś class Foo, to również obiekt typu jest Foo.

Edit: jak @delnan notatek, sam type jest również typ w Pythonie, więc isinstance(str, type) jest prawdą, ponieważ str jest typem, podczas isinstance('foo', type) jest fałszywe. object jest również typem w języku Python i jest katalogiem głównym hierarchii typów.

+0

@vineel: zaktualizowano odpowiedź. –

+0

thanQ ... Oczyściło mnie :) – vineel

0

To stwierdzenie sprawdza, czy object ma typ type. Zmienna type powinna być klasą.

0
isinstance(object, classinfo) 

powrotu ważne, jeśli celem jest argument wystąpienie argumentu classinfo lub z (bezpośrednie, pośrednie lub wirtualnej) podklasie tych związków. Zwraca również wartość true, jeśli classinfo jest obiektem typu (klasa nowego stylu), a obiekt jest obiektem tego typu lub jego (bezpośredniej, pośredniej lub wirtualnej) podklasą. Jeśli obiekt nie jest instancją klasy lub obiektem danego typu, funkcja zawsze zwraca wartość false. Jeśli classinfo nie jest ani obiektem klasy, ani obiektem typu, może być krotką obiektów klasy lub typu lub może rekursywnie zawierać inne takie krotki (inne typy sekwencji nie są akceptowane). Jeśli classinfo nie jest klasą, typem lub krotką klas, typów i takich krotek, wywoływany jest wyjątek TypeError.

Zmieniono w wersji 2.2: Dodano obsługę krotki informacji o typie: .

Cyt z: http://docs.python.org/library/functions.html#isinstance