type() și isinstance() în Python cu Exemple

⚡ Rezumat inteligent

Python type() și isinstance() sunt funcții încorporate pentru verificarea clasei unui obiect. type() returnează tipul exact, în timp ce isinstance() testează dacă un obiect aparține unei clase sau unui tuplu de clase. Ambele sunt prezentate aici cu exemple.

  • 🔍 tip(): Returnează clasa exactă a unui obiect, cum ar fi str, int sau list.
  • instanță(): Verifică dacă un obiect este o instanță a unei clase date, returnând True sau False.
  • 🧩 Tip cu trei argumente (): type(name, bases, dict) creează dinamic un obiect de clasă complet nou.
  • 🌳 Subclase: isinstance() returnează True pentru subclase; type() verifică doar clasa exactă.
  • 🎯 Cazuri de utilizare: Validați tipurile de intrare, depanați variabilele și ramificați logica după tipul de obiect.
  • 🤖 Ajutor AI: Instrumentele de inteligență artificială precum Copilot generează verificări type() și isinstance() la cerere.

type() și isinstance() în Python

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

Întrebări frecvente

type() este o funcție încorporată care returnează clasa unui obiect. Dacă i se transmite un argument, returnează tipul obiectului; dacă i se transmit trei (nume, baze, dict), creează o nouă clasă.

isinstance(object, classtype) verifică dacă un obiect este o instanță a unei clase sau a unui tuplu de clase. Returnează True dacă tipul se potrivește și False în caz contrar.

type() returnează clasa exactă a unui obiect și ignoră moștenirea, în timp ce isinstance() returnează True și pentru subclase. Folosește isinstance() pentru verificări flexibile de tip care respectă ierarhiile claselor.

Da. Apelarea funcției type(name, bases, dict) cu trei argumente returnează dinamic un nou obiect de clasă. name este numele clasei, bases este un tuplu de părinți, iar dict conține atribute.

Da. isinstance() returnează True atunci când un obiect este o instanță a unei clase sau a oricăreia dintre subclasele sale. Acest lucru o face mai sigură decât type() pentru verificarea tipurilor moștenite.

Asistenții AI, precum GitHub Copilot, completează automat verificările type() și isinstance(), generează gărzi de validare și sugerează abordarea corectă pentru un anumit obiect pe măsură ce scrii. Python.

Da. Instrumentele bazate pe inteligență artificială pot automatiza inserarea guardiilor isinstance(), detecta intrările neverificate și refactoriza comparațiile fragile de type() în verificări isinstance() mai sigure în baza de cod.

type() returnează obiectul de clasă pentru valoarea: list pentru o listă și dict pentru un dicționar. Afișarea acestuia afișează o formă de genul class list sau class dict.

Rezumați această postare cu: