La funzione isinstance () controlla se l'oggetto (primo argomento) è un'istanza o una sottoclasse della classe classinfo (secondo argomento).
La sintassi di isinstance()
è:
isinstance (object, classinfo)
Parametri isinstance ()
isinstance()
accetta due parametri:
- oggetto -
object
da controllare - classinfo : classe, tipo o tupla di classi e tipi
Valore restituito da isinstance ()
isinstance()
ritorna:
True
se l'oggetto è un'istanza o una sottoclasse di una classe o qualsiasi elemento della tuplaFalse
altrimenti
Se classinfo non è un tipo o una tupla di tipi, TypeError
viene sollevata un'eccezione.
Esempio 1: come funziona isinstance ()?
class Foo: a = 5 fooInstance = Foo() print(isinstance(fooInstance, Foo)) print(isinstance(fooInstance, (list, tuple))) print(isinstance(fooInstance, (list, tuple, Foo)))
Produzione
Vero Falso Vero
Esempio 2: utilizzo di isinstance () con tipi nativi
numbers = (1, 2, 3) result = isinstance(numbers, list) print(numbers,'instance of list?', result) result = isinstance(numbers, dict) print(numbers,'instance of dict?', result) result = isinstance(numbers, (dict, list)) print(numbers,'instance of dict or list?', result) number = 5 result = isinstance(number, list) print(number,'instance of list?', result) result = isinstance(number, int) print(number,'instance of int?', result)
Produzione
(1, 2, 3) istanza di elenco? True (1, 2, 3) istanza di dict? False (1, 2, 3) istanza di dict o list? Vero 5 istanza di elenco? False 5 istanza di int? Vero