2013-08-08 14 views
10

Mam zmienną „MyVar”, że kiedy wydrukować jego type(myvar)Jak sprawdzić, czy zmienna jest konkretną klasą w python?

wyjście jest:

<class 'my.object.kind'> 

Jeśli mam listę 10 zmiennych, w tym ciągów i zmiennych tego typu .. jak mogę skonstruować instrukcję if, aby sprawdzić, czy obiekt na liście "mylist" ma wartość <type 'my.object.kind'>?

+0

Nie jest jasne, co próbujesz zrobić. Czy próbujesz sprawdzić, czy lista zawiera element typu 'my.object.kind'? Czy próbujesz uzyskać typy wszystkich elementów listy? – user2357112

+0

'isinstance()' jest wbudowaną funkcją python, której szukasz. http://docs.python.org/2/library/functions.html#isinstance –

Odpowiedz

13

Zastosowanie isinstance, to zwróci true, nawet jeśli jest instancją podklasy:

if isinstance(x, my.object.kind) 

Lub:

type(x) == my.object.kind #3.x 

Jeśli chcesz przetestować wszystko w liście:

if any(isinstance(x, my.object.kind) for x in alist) 
+0

Post pyta o sposób zastosowania tego do listy – Owen

0
if any(map(lambda x: isinstance(x, my.object.kind), my_list_of_objects)): 
    print "Found one!" 
+3

'map' i' lambda' nie są tutaj potrzebne, użyj generatora. – tobyodavies

0

Wypróbuj

if any([isinstance(x, my.object.kind) for x in mylist]): 
    print "found" 
Powiązane problemy