type() e isinstance() in Python con esempi

Che cosa contiene type() Python?

Python ha una funzione incorporata chiamata type() che ti aiuta a trovare il tipo di classe della variabile fornita come input. Ad esempio, se l'input è una stringa, otterrai l'output come , per l'elenco, lo sarà , ecc.

Utilizzando il comando type(), puoi passare un singolo argomento e il valore restituito sarà il tipo di classe dell'argomento fornito, ad esempio: type(object).

È anche possibile passare tre argomenti a type(), ovvero type(name, bases, dict), in tal caso restituirà un nuovo oggetto di tipo.

Sintassi per tipo()

type() può essere utilizzato in due modi, come mostrato di seguito:

 type(object)
type(namr, bases, dict)

parametri: tipo(oggetto)

  • oggetto: questo è un parametro obbligatorio. Se questo è solo il parametro passato a type(), ti restituirà il tipo del parametro.

parametri: tipo(nome, basi, dict)

  • nome:nome della classe.
  • basi: (opzionale). Questo è un parametro facoltativo ed è la classe base
  • dict: (facoltativo). Questo è un parametro facoltativo ed è uno spazio dei nomi che contiene la definizione della classe.

Valore di ritorno

Se l'oggetto è l'unico parametro passato a type() allora ti restituirà il tipo dell'oggetto.

Se i parametri passati al tipo sono un tipo (oggetto, basi, dict), in tal caso restituirà un nuovo tipo di oggetto.

Esempio di tipo()

In questo esempio abbiamo un valore stringa, un numero, un valore float, un numero complesso, un elenco, una tupla, un dizionario e un set. Utilizzeremo le variabili con tipo per vedere l'output per ciascuna di esse.

str_list = "Welcome to Guru99"
age = 50
pi = 3.14
c_num = 3j+10
my_list = ["A", "B", "C", "D"]
my_tuple = ("A", "B", "C", "D")
my_dict = {"A":"a", "B":"b", "C":"c", "D":"d"}
my_set = {'A', 'B', 'C', 'D'}

print("The type is : ",type(str_list))
print("The type is : ",type(age))
print("The type is : ",type(pi))
print("The type is : ",type(c_num))
print("The type is : ",type(my_list))
print("The type is : ",type(my_tuple))
print("The type is : ",type(my_dict))
print("The type is : ",type(my_set))

Produzione:

The type is :<class 'str'>
The type is :<class 'int'>
The type is :<class 'float'>
The type is :<class 'complex'>
The type is :<class 'list'>
The type is :<class 'tuple'>
The type is :<class 'dict'>
The type is :<class 'set'>

Esempio: utilizzo di type() per l'oggetto della classe.

Quando controlli l'oggetto creato da una classe utilizzando type(), restituisce il tipo di classe insieme al nome della classe. In questo esempio creeremo una classe e controlleremo il tipo di oggetto creato dal test della classe.

class test:
    s = 'testing'

t = test()
print(type(t))

Produzione:

<class '__main__.test'>

Esempio: utilizzo del nome, delle basi e del dict in type()

Il tipo può essere chiamato anche utilizzando la sintassi: type(name, bases, dict).

I tre parametri passati a type()ie, name, bases e dict sono i componenti che compongono una definizione di classe. Il nome rappresenta il nome della classe, le basi è la classe base e dict è il dizionario degli attributi della classe base.

In questo esempio, utilizzeremo tutti e tre i parametri, ovvero nome, basi e dict in type().

Esempio:

class MyClass:
  x = 'Hello World'
  y = 50

t1 = type('NewClass', (MyClass,), dict(x='Hello World', y=50))
print(type(t1))
print(vars(t1))

Produzione:

<class 'type'>
{'x': 'Hello World', 'y': 50, '__module__': '__main__', '__doc__': None}

Quando passi tutti e tre gli argomenti a type() , ti aiuta a inizializzare la nuova classe con gli attributi della classe base.

In cosa consiste isinstance() Python?

Python isistanza fa parte di funzioni integrate di Python. Python isinstance() accetta due argomenti e restituisce true se il primo argomento è un'istanza del classinfo fornito come secondo argomento.

Sintassi isistanza()

isinstance(object, classtype)

parametri

  • object: Un oggetto la cui istanza stai confrontando con classtype. Restituirà true se il tipo corrisponde, altrimenti false.
  • tipo di classe: un tipo, una classe o una tupla di tipi e/o classi.

Valore di ritorno

Restituirà true se l'oggetto è un'istanza di classtype e false in caso contrario.

Esempi di isistanza()

In questa sezione studieremo vari esempi per imparare isinstance()

Esempio: isinstance() Controllo intero

Il codice seguente confronta il valore intero 51 con il tipo int. Restituirà true se il tipo di 51 corrisponde a int, altrimenti false.

age = isinstance(51,int)
print("age is an integer:", age)

Produzione:

age is an integer: True

Esempio: isinstance() Controllo float

In questo esempio confronteremo il valore float con il tipo float, ovvero il valore 3.14 verrà confrontato con il tipo float.

pi = isinstance(3.14,float)
print("pi is a float:", pi)

Produzione:

pi is a float: True

Esempio: isinstance() Controllo della stringa

message = isinstance("Hello World",str)
print("message is a string:", message)

Produzione:

message is a string: True

Esempio: isinstance() Controllo della tupla

Il codice verifica la presenza di una tupla (1,2,3,4,5) di tipo tupla. Restituirà vero se l'input fornito è di tipo tuple e falso in caso contrario.

my_tuple = isinstance((1,2,3,4,5),tuple)
print("my_tuple is a tuple:", my_tuple)

Produzione:

my_tuple is a tuple: True

Esempio: isinstance() Imposta il controllo

Il codice verifica la presenza di un set ({1,2,3,4,5}, con tipo set. Restituirà true se l'input fornito è di tipo set e false in caso contrario.

my_set = isinstance({1,2,3,4,5},set)
print("my_set is a set:", my_set)

Produzione:

my_set is a set: True

Esempio: controllo dell'elenco isinstance()

Il codice verifica la presenza di un elenco [1,2,3,4,5], con elenco dei tipi. Restituirà vero se l'input fornito è di tipo elenco e falso in caso contrario.

my_list = isinstance([1,2,3,4,5],list)
print("my_list is a list:", my_list)

Produzione:

my_list is a list: True

Esempio: controllo dict isinstance()

Il codice verifica la presenza di un dict({“A”:”a”, “B”:”b”, “C”:”c”, “D”:”d”},con tipo dict. Restituirà vero se l'input fornito è di tipo dict e false in caso contrario.

my_dict = isinstance({"A":"a", "B":"b", "C":"c", "D":"d"},dict)
print("my_dict is a dict:", my_dict)

Produzione:

my_dict is a dict: True

Esempio: test isinstance() su una classe

Il codice mostra il controllo del tipo di classe con isinstance() . L'oggetto della classe viene confrontato con il nome della classe all'interno di isinstance(). Restituisce true se l'oggetto appartiene alla classe e false in caso contrario.

class MyClass:
    _message = "Hello World"

_class = MyClass()

print("_class is a instance of MyClass() : ", isinstance(_class,MyClass))

Produzione:

_class is a instance of MyClass() True

Differenza tra type() e isinstance() in Python

genere() isinstance ()
Python ha una funzione incorporata chiamata type() che ti aiuta a trovare il tipo di classe della variabile fornita come input. Python ha una funzione incorporata chiamata isinstance() che confronta il valore con il tipo dato. Se il valore e il tipo dato corrispondono, restituirà true altrimenti false.
Il valore restituito è un oggetto di tipo Il valore restituito è un booleano, ovvero vero o falso.
class A:
my_listA = [1,2,3]

class B(A):
my_listB = [1,2,3]

print(type(A()) == A)
print(type(B()) == A)

Produzione:

True
False

In caso di tipo il controllo della sottoclasse restituisce false.

class A:
my_listA = [1,2,3]

class B(A):
my_listB = [1,2,3]

print(isinstance(A(), A))
print(isinstance(B(), A))

Produzione:

True
True

isinstance() fornisce un valore di verità quando viene controllato con una sottoclasse.

Sommario

  • Python ha una funzione incorporata chiamata type() che ti aiuta a trovare il tipo di classe della variabile fornita come input. Ad esempio, se l'input è una stringa, otterrai l'output come , per l'elenco, lo sarà , ecc.
  • Per type(), puoi passare un singolo argomento e il valore restituito sarà il tipo di classe dell'argomento fornito, ad esempio type(object).
  • È anche possibile passare tre argomenti a type(), ovvero type(name, bases, dict), in tal caso restituirà un nuovo oggetto di tipo.
  • Python ha una funzione integrata chiamata instance() che confronta il valore con il tipo dato. Se il valore e il tipo dato corrispondono, restituirà true altrimenti false. Utilizzando isinstance(), puoi testare string, float, int, list, tuple, dict, set, class, ecc.
  • Usando il metodo isinstance(), puoi testare string, float, int, list, tuple, dict, set, class, ecc.