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)

Scheda Sintetica: tipo(oggetto)

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

Scheda Sintetica: 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)

Scheda Sintetica

  • 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.

Sintesi

  • 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.

Riassumi questo post con: