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.