type() și isinstance() în Python cu Exemple
Ce este type() în Python?
Python are o funcție încorporată numită type() care vă ajută să găsiți tipul de clasă al variabilei date ca intrare. De exemplu, dacă intrarea este un șir, veți obține rezultatul ca , pentru lista, va fi , etc.
Folosind comanda type(), puteți trece un singur argument, iar valoarea returnată va fi tipul de clasă al argumentului dat, exemplu: tip(obiect).
De asemenea, este posibil să treci trei argumente către type(), adică type(nume, baze, dict), în acest caz, îți va returna un nou obiect de tip.
Sintaxă pentru tipul ()
type() poate fi folosit în două moduri, după cum se arată mai jos:
type(object) type(namr, bases, dict)
parametrii: tip (obiect)
- obiect: Acesta este un parametru obligatoriu. Dacă acesta este doar un parametru transmis la type(), atunci vă va returna tipul parametrului.
parametrii: tip (nume, baze, dict)
- nume:numele clasei.
- baze: (optional). Acesta este un parametru opțional și este clasa de bază
- dict: (opțional). Acesta este un parametru opțional și este un spațiu de nume care are definiția clasei.
Valoarea retur
Dacă obiectul este singurul parametru transmis tip() atunci acesta vă va returna tipul obiectului.
Dacă parametrii trecuți la type sunt un tip (obiect, baze, dict), în acest caz, va returna un nou tip de obiect.
Exemplu de tip()
În acest exemplu, avem o valoare șir, număr, valoare flotantă, un număr complex, listă, tuplu, dict și set. Vom folosi variabilele cu tip pentru a vedea rezultatul pentru fiecare dintre ele.
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))
ieșire:
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'>
Exemplu: Folosind type() pentru obiectul clasei.
Când verificați obiectul creat dintr-o clasă folosind type(), acesta returnează tipul clasei împreună cu numele clasei. În acest exemplu, vom crea o clasă și vom verifica tipul de obiect creat din testul clasei.
class test: s = 'testing' t = test() print(type(t))
ieșire:
<class '__main__.test'>
Exemplu: Folosirea numelui, bazelor și dictatului în type()
Tipul poate fi numit și folosind sintaxa: type(nume, baze, dict).
Cei trei parametri trecuți la type()ie, nume, baze și dict sunt componentele care alcătuiesc o definiție de clasă. Numele reprezintă numele clasei, bazele este clasa de bază, iar dict este dicționarul de atribute ale clasei de bază.
În acest exemplu, vom folosi toți cei trei parametri, adică nume, baze și dict în type().
Exemplu:
class MyClass: x = 'Hello World' y = 50 t1 = type('NewClass', (MyClass,), dict(x='Hello World', y=50)) print(type(t1)) print(vars(t1))
ieșire:
<class 'type'> {'x': 'Hello World', 'y': 50, '__module__': '__main__', '__doc__': None}
Când treceți toate cele trei argumente tip() , vă ajută să inițializați o nouă clasă cu atribute ale clasei de bază.
Ce este isinstance() în Python?
Python isinstanța face parte din funcții încorporate python. Python isinstance() preia două argumente și returnează adevărat dacă primul argument este o instanță a informației de clasă dată ca al doilea argument.
Sintaxa esteinstanta()
isinstance(object, classtype)
parametrii
- obiect: un obiect a cărui instanță o comparați cu tipul clasei. Va returna true dacă tipul se potrivește altfel fals.
- tip de clasă: un tip sau o clasă sau un tuplu de tipuri și/sau clase.
Valoare returnată
Va returna true dacă obiectul este o instanță de classtype și false dacă nu.
Exemple de isinstance()
În această secțiune, vom studia diverse exemple pentru a învăța isinstance()
Exemplu: isinstance() Verificare întreg
Codul de mai jos compară valoarea întreagă 51 cu tipul int. Va returna true dacă tipul 51 se potrivește cu int, altfel false.
age = isinstance(51,int) print("age is an integer:", age)
ieșire:
age is an integer: True
Exemplu: isinstance() Verificare flotant
În acest exemplu vom compara valoarea float cu tipul float, adică valoarea 3.14 va fi comparată cu tipul float.
pi = isinstance(3.14,float) print("pi is a float:", pi)
ieșire:
pi is a float: True
Exemplu: isinstance() Verificare șir
message = isinstance("Hello World",str) print("message is a string:", message)
ieșire:
message is a string: True
Exemplu: isinstance() Verificare tuplu
Codul verifică un tuplu (1,2,3,4,5) cu tip tuplu. Va returna true dacă intrarea dată este de tip tuple și false dacă nu.
my_tuple = isinstance((1,2,3,4,5),tuple) print("my_tuple is a tuple:", my_tuple)
ieșire:
my_tuple is a tuple: True
Exemplu: isinstance() Setați verificarea
Codul verifică un set ({1,2,3,4,5}, cu tipul setat. Va returna adevărat dacă intrarea dată este de tip set și fals dacă nu.
my_set = isinstance({1,2,3,4,5},set) print("my_set is a set:", my_set)
ieșire:
my_set is a set: True
Exemplu: verificarea listei isinstance().
Codul verifică o listă [1,2,3,4,5], cu lista de tipuri. Va returna true dacă intrarea dată este de tip listă și false dacă nu.
my_list = isinstance([1,2,3,4,5],list) print("my_list is a list:", my_list)
ieșire:
my_list is a list: True
Exemplu: isinstance() dict check
Codul verifică un dict({“A”:”a”, “B”:”b”, “C”:”c”, “D”:”d”}, cu tipul dict. Va returna adevărat dacă intrarea dată este de tip dict și false dacă nu.
my_dict = isinstance({"A":"a", "B":"b", "C":"c", "D":"d"},dict) print("my_dict is a dict:", my_dict)
ieșire:
my_dict is a dict: True
Exemplu: testul isinstance() pe o clasă
Codul arată verificarea tipului clasei cu isinstance() . Obiectul clasei este comparat cu numele clasei din isinstance(). Returnează true dacă obiectul aparține clasei și false în caz contrar.
class MyClass: _message = "Hello World" _class = MyClass() print("_class is a instance of MyClass() : ", isinstance(_class,MyClass))
ieșire:
_class is a instance of MyClass() True
Diferența dintre type() și isinstance() în Python
tip() | esteinstanta() |
---|---|
Python are o funcție încorporată numită type() care vă ajută să găsiți tipul de clasă al variabilei date ca intrare. | Python are o funcție încorporată numită isinstance() care compară valoarea cu tipul dat. Dacă valoarea și tipul dat se potrivesc, va returna adevărat, altfel fals. |
Valoarea returnată este un obiect de tip | Valoarea returnată este booleană, adică adevărată sau falsă. |
class A: my_listA = [1,2,3] class B(A): my_listB = [1,2,3] print(type(A()) == A) print(type(B()) == A) ieșire: True False În cazul tipului, verificarea subclasei dă înapoi false. |
class A: my_listA = [1,2,3] class B(A): my_listB = [1,2,3] print(isinstance(A(), A)) print(isinstance(B(), A)) ieșire: True True isinstance() dă o valoare adevărată atunci când este verificată cu o subclasă. |
Rezumat
- Python are o funcție încorporată numită type() care vă ajută să găsiți tipul de clasă al variabilei date ca intrare. De exemplu, dacă intrarea este un șir, veți obține rezultatul ca , pentru lista, va fi , etc.
- Pentru type(), puteți trece un singur argument, iar valoarea returnată va fi tipul de clasă al argumentului dat, de exemplu, tip(obiect).
- De asemenea, este posibil să treci trei argumente către type(), adică type(nume, baze, dict), în acest caz, îți va returna un nou obiect de tip.
- Python are o funcție încorporată numită instance() care compară valoarea cu tipul dat. Dacă valoarea și tipul dat se potrivesc, va returna adevărat, altfel fals. Folosind isinstance(), puteți testa șir, float, int, list, tuple, dict, set, class etc.
- Folosind metoda isinstance(), puteți testa pentru string, float, int, list, tuple, dict, set, class etc.