type() i isinstance() in Python s Primjerima

ล to je type() u Python?

Python ima ugraฤ‘enu funkciju pod nazivom type() koja vam pomaลพe pronaฤ‡i tip klase varijable dane kao ulaz. Na primjer, ako je ulaz niz, dobit ฤ‡ete izlaz kao , za popis, bit ฤ‡e itd.

Pomoฤ‡u naredbe type() moลพete proslijediti jedan argument, a povratna vrijednost ฤ‡e biti tip klase danog argumenta, primjer: type(object).

Takoฤ‘er je moguฤ‡e proslijediti tri argumenta u type(), tj. type(name, bases, dict), u tom sluฤaju ฤ‡e vam vratiti novi tip objekta.

Sintaksa za type()

type() se moลพe koristiti na dva naฤina kao ลกto je prikazano u nastavku:

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

Parametri: tip(objekt)

  • objekt: Ovo je obavezan parametar. Ako je ovo samo parametar proslijeฤ‘en tipu(), vratit ฤ‡e vam tip parametra.

Parametri: tip(ime, baze, dikt)

  • ime:naziv klase.
  • baze: (po izboru). Ovo je izborni parametar i osnovna je klasa
  • dict: (neobavezno). Ovo je izborni parametar i to je prostor imena koji ima definiciju klase.

Povratna vrijednost

Ako je objekt jedini parametar proslijeฤ‘en tipu(), tada ฤ‡e vam vratiti tip objekta.

Ako su parametri proslijeฤ‘eni tipu tipa (objekt, baze, dikt), u tom ฤ‡e sluฤaju vratiti novi tip objekta.

Primjer tipa()

U ovom primjeru imamo vrijednost niza, broj, float vrijednost, sloลพeni broj, popis, tuple, dict i set. Koristit ฤ‡emo varijable s tipom da vidimo izlaz za svaku od njih.

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))

Izlaz:

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'>

Primjer: Koriลกtenje type() za objekt klase.

Kada provjerite objekt kreiran iz klase pomoฤ‡u type(), on vraฤ‡a tip klase zajedno s nazivom klase. U ovom primjeru stvorit ฤ‡emo klasu i provjeriti tip objekta stvoren iz testa klase.

class test:
    s = 'testing'

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

Izlaz:

<class '__main__.test'>

Primjer: koriลกtenje imena, baza i diktata u type()

Tip se takoฤ‘er moลพe pozvati sintaksom: tip(ime, baze, dikt).

Tri parametra proslijeฤ‘ena tipu(), tj. ime, baze i dikt su komponente koje ฤine definiciju klase. Ime predstavlja naziv klase, bases je osnovna klasa, a dict je rjeฤnik atributa osnovne klase.

U ovom primjeru koristit ฤ‡emo sva tri parametra, tj. name, bases i dict u type().

Primjer:

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

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

Izlaz:

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

Kada proslijedite sva tri argumenta u type(), to vam pomaลพe da inicijalizirate novu klasu s atributima osnovne klase.

U ฤemu je isinstance(). Python?

Python isinstance je dio Python ugraฤ‘ene funkcije. Python isinstance() prima dva argumenta i vraฤ‡a true ako je prvi argument instanca classinfo danog kao drugi argument.

Sintaksa isinstance()

isinstance(object, classtype)

Parametri

  • objekt: Objekt ฤiju instancu usporeฤ‘ujete s tipom klase. Vratit ฤ‡e true ako tip odgovara inaฤe false.
  • tip klase: Tip ili klasa ili skup tipova i/ili klasa.

Povratna vrijednost

Vratit ฤ‡e true ako je objekt instanca classtype i false ako nije.

Primjeri isinstance()

U ovom ฤ‡emo odjeljku prouฤiti razne primjere kako bismo nauฤili isinstance()

Primjer: isinstance() Provjera cijelog broja

Kod u nastavku usporeฤ‘uje cjelobrojnu vrijednost 51 s tipom int. Vratit ฤ‡e true ako se tip od 51 podudara s int inaฤe false.

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

Izlaz:

age is an integer: True

Primjer: isinstance() Provjera float

U ovom primjeru ฤ‡emo usporediti float vrijednost s tipom float, tj. vrijednost 3.14 ฤ‡e se usporediti s tipom float.

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

Izlaz:

pi is a float: True

Primjer: isinstance() Provjera niza

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

Izlaz:

message is a string: True

Primjer: isinstance() Provjera tuple

Kod provjerava tuple (1,2,3,4,5) s tipom tuple. Vratit ฤ‡e true ako je dani unos tipa tuple i false ako nije.

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

Izlaz:

my_tuple is a tuple: True

Primjer: isinstance() Postavi provjeru

Kod provjerava skup ({1,2,3,4,5}, s tipom set. Vratit ฤ‡e true ako je dani unos tipa set i false ako nije.

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

Izlaz:

my_set is a set: True

Primjer: isinstance() provjera popisa

Kod provjerava popis [1,2,3,4,5] s tipom popis. Vratit ฤ‡e true ako je dani unos tipa list i false ako nije.

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

Izlaz:

my_list is a list: True

Primjer: isinstance() dict provjera

Kod provjerava dict({โ€œAโ€:โ€aโ€, โ€œBโ€:โ€bโ€, โ€œCโ€:โ€cโ€, โ€œDโ€:โ€dโ€}, s tipom dict. Vratit ฤ‡e true ako dani unos je tipa dict i false ako nije.

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

Izlaz:

my_dict is a dict: True

Primjer: isinstance() test na klasi

Kod prikazuje provjeru tipa klase s isinstance() . Objekt klase usporeฤ‘uje se s imenom klase unutar isinstance(). Vraฤ‡a true ako objekt pripada klasi, a false u suprotnom.

class MyClass:
    _message = "Hello World"

_class = MyClass()

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

Izlaz:

_class is a instance of MyClass() True

Razlika izmeฤ‘u type() i isinstance() u Python

tip() isinstance()
Python ima ugraฤ‘enu funkciju pod nazivom type() koja vam pomaลพe pronaฤ‡i tip klase varijable dane kao ulaz. Python ima ugraฤ‘enu funkciju isinstance() koja usporeฤ‘uje vrijednost s danim tipom. Ako se navedena vrijednost i tip podudaraju, vratit ฤ‡e true, inaฤe false.
Povratna vrijednost je objekt tipa Povratna vrijednost je Booleova, tj. istina ili laลพ.
class A:
my_listA = [1,2,3]

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

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

Izlaz:

True
False

U sluฤaju tipa, provjera podklase daje false.

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

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

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

Izlaz:

True
True

isinstance() daje istinitu vrijednost kada se provjeri s podklasom.

Rezime

  • Python ima ugraฤ‘enu funkciju pod nazivom type() koja vam pomaลพe pronaฤ‡i tip klase varijable dane kao ulaz. Na primjer, ako je ulaz niz, dobit ฤ‡ete izlaz kao , za popis, bit ฤ‡e itd.
  • Za type(), moลพete proslijediti jedan argument, a povratna vrijednost ฤ‡e biti tip klase danog argumenta, npr. type(object).
  • Takoฤ‘er je moguฤ‡e proslijediti tri argumenta u type(), tj. type(name, bases, dict), u tom sluฤaju ฤ‡e vam vratiti novi tip objekta.
  • Python ima ugraฤ‘enu funkciju nazvanu instance() koja usporeฤ‘uje vrijednost s danim tipom. Ako se navedena vrijednost i tip podudaraju, vratit ฤ‡e true, inaฤe false. Koristeฤ‡i isinstance(), moลพete testirati niz, float, int, listu, tuple, dict, skup, klasu itd.
  • Koristeฤ‡i metodu isinstance(), moลพete testirati niz, float, int, listu, tuple, dict, skup, klasu itd.

Saลพmite ovu objavu uz: