type() ja isinstance() in Python esimerkkien kanssa
Mikรค on type() in Python?
Python on sisรครคnrakennettu funktio nimeltรค type(), joka auttaa sinua lรถytรคmรครคn syรถtteenรค annetun muuttujan luokkatyypin. Jos syรถte on esimerkiksi merkkijono, saat tulosteen muodossa , listalle se tulee olemaan jne.
Type()-komennolla voit vรคlittรครค yhden argumentin, ja palautusarvo on annetun argumentin luokkatyyppi, esimerkiksi type(object).
On myรถs mahdollista vรคlittรครค kolme argumenttia type():lle, eli type(nimi, bases, dict), siinรค tapauksessa se palauttaa sinulle uuden tyyppisen objektin.
Syntaksi tyypille ()
type():tรค voidaan kรคyttรครค kahdella tavalla alla olevan kuvan mukaisesti:
type(object) type(namr, bases, dict)
parametrit: tyyppi(objekti)
- objekti: Tรคmรค on pakollinen parametri. Jos tรคmรค on vain parametri vรคlitetty type(), niin se palauttaa sinulle parametrin tyypin.
parametrit: tyyppi (nimi, perusteet, sanelu)
- nimi:luokan nimi.
- pohjat: (valinnainen). Tรคmรค on valinnainen parametri, ja se on perusluokka
- sanelu: (valinnainen). Tรคmรค on valinnainen parametri, ja se on nimiavaruus, jossa on luokan mรครคritelmรค.
Palautusarvo
Jos objekti on ainoa parametrille type() vรคlitetty parametri, se palauttaa sinulle objektin tyypin.
Jos tyypille vรคlitetty parametri on tyyppi (objekti, kantakohdat, sanelu), se palauttaa siinรค tapauksessa uudentyyppisen objektin.
Esimerkki tyypistรค ()
Tรคssรค esimerkissรค meillรค on merkkijonoarvo, numero , liukuluku, kompleksiluku, lista, monikko , sanelu ja joukko. Kรคytรคmme muuttujia tyypin kanssa nรคhdรคksemme kunkin niistรค tulosteen.
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))
lรคhtรถ:
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'>
Esimerkki: Type():n kรคyttรถ luokkaobjektille.
Kun tarkistat luokasta luodun objektin type(:llรค), se palauttaa luokan tyypin ja luokan nimen. Tรคssรค esimerkissรค luomme luokan ja tarkistamme luokkatestissรค luodun objektityypin.
class test:
s = 'testing'
t = test()
print(type(t))
lรคhtรถ:
<class '__main__.test'>
Esimerkki: Nimen, kantalukujen ja sanelun kรคyttรคminen type()
Tyyppiรค voidaan kutsua myรถs kรคyttรคmรคllรค syntaksia: type(nimi, kantakohdat, sanelu).
Kolme parametria, jotka vรคlitetรครคn type()ie:lle, name, bases ja dict ovat komponentteja, jotka muodostavat luokan mรครคritelmรคn. Nimi edustaa luokan nimeรค, bases on perusluokka ja dict on perusluokan attribuuttien sanakirja.
Tรคssรค esimerkissรค aiomme kรคyttรครค kaikkia kolmea parametria eli nimeรค, perustaa ja dict in type().
Esimerkiksi:
class MyClass:
x = 'Hello World'
y = 50
t1 = type('NewClass', (MyClass,), dict(x='Hello World', y=50))
print(type(t1))
print(vars(t1))
lรคhtรถ:
<class 'type'>
{'x': 'Hello World', 'y': 50, '__module__': '__main__', '__doc__': None}
Kun vรคlitรคt kaikki kolme argumenttia type() :lle, se auttaa sinua alustamaan uuden luokan perusluokan attribuuttien avulla.
Mikรค on isstance() in Python?
Python isinstance on osa pythonin sisรครคnrakennetut toiminnot. Python isinstance() ottaa kaksi argumenttia, ja se palauttaa tosi, jos ensimmรคinen argumentti on toiseksi argumentiksi annetun classinfon esiintymรค.
Syntaksiinstance()
isinstance(object, classtype)
parametrit
- objekti: Objekti, jonka ilmentymรครค vertaat luokkatyyppiin. Se palauttaa tosi, jos tyyppi vastaa muuten epรคtosi.
- luokkatyyppi: Tyyppi tai luokka tai tyyppejรค ja/tai luokkia.
Palautusarvo
Se palauttaa tosi, jos objekti on luokkatyypin esiintymรค, ja false, jos ei.
Esimerkkejรค isinstance()
Tรคssรค osiossa tutkimme erilaisia โโesimerkkejรค oppiaksemme isinstance()
Esimerkki: isinstance() Kokonaislukutarkistus
Alla oleva koodi vertaa kokonaislukuarvoa 51 tyyppiin int. Se palauttaa true it tyyppiรค 51 vastaa ja int muuten epรคtosi.
age = isinstance(51,int)
print("age is an integer:", age)
lรคhtรถ:
age is an integer: True
Esimerkki: isinstance() Float check
Tรคssรค esimerkissรค aiomme verrata float-arvoa tyyppiin float eli arvoa 3.14 verrataan tyyppiin float.
pi = isinstance(3.14,float)
print("pi is a float:", pi)
lรคhtรถ:
pi is a float: True
Esimerkki: isinstance() Merkkijonon tarkistus
message = isinstance("Hello World",str)
print("message is a string:", message)
lรคhtรถ:
message is a string: True
Esimerkki: isinstance() Tuple check
Koodi tarkistaa monikko (1,2,3,4,5), jonka tyyppi on monikko. Se palauttaa tosi, jos syรถte on tyyppiรค tuple ja false jos ei.
my_tuple = isinstance((1,2,3,4,5),tuple)
print("my_tuple is a tuple:", my_tuple)
lรคhtรถ:
my_tuple is a tuple: True
Esimerkki: isinstance() Aseta tarkistus
Koodi tarkistaa joukon ({1,2,3,4,5}, jonka tyyppi on asetettu. Se palauttaa tosi, jos syรถte on tyyppiรค set ja false, jos ei.
my_set = isinstance({1,2,3,4,5},set)
print("my_set is a set:", my_set)
lรคhtรถ:
my_set is a set: True
Esimerkki: isinstance() -luettelon tarkistus
Koodi tarkistaa luettelon [1,2,3,4,5] tyyppiluettelon kanssa. Se palauttaa tosi, jos syรถte on tyyppiluetteloa ja false jos ei.
my_list = isinstance([1,2,3,4,5],list)
print("my_list is a list:", my_list)
lรคhtรถ:
my_list is a list: True
Esimerkki: isinstance() dict check
Koodi tarkistaa sanan ({"A":"a", "B":"b", "C":"c", "D":"d"}, tyyppi dict. Se palauttaa tosi, jos annettu syรถte on tyyppiรค dict ja false, jos ei.
my_dict = isinstance({"A":"a", "B":"b", "C":"c", "D":"d"},dict)
print("my_dict is a dict:", my_dict)
lรคhtรถ:
my_dict is a dict: True
Esimerkki: isinstance() -testi luokassa
Koodi nรคyttรครค luokan tyyppitarkistuksen isinstance() :lla. Luokan objektia verrataan luokan nimeen sisรคllรค isinstance(). Se palauttaa tosi, jos objekti kuuluu luokkaan ja false muuten.
class MyClass:
_message = "Hello World"
_class = MyClass()
print("_class is a instance of MyClass() : ", isinstance(_class,MyClass))
lรคhtรถ:
_class is a instance of MyClass() True
Ero type() ja isinstance() in vรคlillรค Python
| tyyppi() | isinstance() |
|---|---|
| Python on sisรครคnrakennettu funktio nimeltรค type(), joka auttaa sinua lรถytรคmรครคn syรถtteenรค annetun muuttujan luokkatyypin. | Python on sisรครคnrakennettu funktio nimeltรค isinstance(), joka vertaa arvoa annettuun tyyppiin. Jos annettu arvo ja tyyppi tรคsmรครคvรคt, se palauttaa tosi, muuten epรคtosi. |
| Palautusarvo on tyyppiobjekti | Palautusarvo on Boolen arvo eli tosi tai epรคtosi. |
class A: my_listA = [1,2,3] class B(A): my_listB = [1,2,3] print(type(A()) == A) print(type(B()) == A) lรคhtรถ: True False Tyypin tapauksessa alaluokan tarkistus antaa takaisin false. |
class A: my_listA = [1,2,3] class B(A): my_listB = [1,2,3] print(isinstance(A(), A)) print(isinstance(B(), A)) lรคhtรถ: True True isinstance() antaa totuudenmukaisen arvon, kun se tarkistetaan alaluokalla. |
Yhteenveto
- Python on sisรครคnrakennettu funktio nimeltรค type(), joka auttaa sinua lรถytรคmรครคn syรถtteenรค annetun muuttujan luokkatyypin. Jos syรถte on esimerkiksi merkkijono, saat tulosteen muodossa , listalle se tulee olemaan jne.
- Type():lle voit antaa yhden argumentin, ja palautusarvo on annetun argumentin luokkatyyppi, esim. type(object).
- On myรถs mahdollista vรคlittรครค kolme argumenttia type():lle, eli type(nimi, bases, dict), siinรค tapauksessa se palauttaa sinulle uuden tyyppisen objektin.
- Python on sisรครคnrakennettu funktio nimeltรค instance(), joka vertaa arvoa annettuun tyyppiin. Jos annettu arvo ja tyyppi vastaavat, se palauttaa tosi, muuten epรคtosi. Isinstance()-komennolla voit testata merkkijonoa, floatia, int:tรค, listaa, monikkoa, sanelua, joukkoa, luokkaa jne.
- Isinstance()-menetelmรคn avulla voit testata merkkijonoa, floatia, int:tรค, luetteloa, monikkoa, sanelua, joukkoa, luokkaa jne.
