Čo je inštancia v Pythone a ako ju implementovať?



Tento článok vás zoznámi s metódou, ktorá je v jazyku Python Isinstance, a poskytne vám dôkladné koncepčné vysvetlenie s demonštráciou.

je jedným z najsilnejších programovacích jazykov dostupných na súčasnom trhu. Python tiež podporuje implementáciu ďalších programovacích jazykov v rámci svojho ekosystému, ako sú Java, C a C ++. Z mnohých modulov a funkcií, ktoré sú k dispozícii v ekosystéme Python, je jedným z tých, ktoré vynikajú medzi ostatnými, inštancia v Pythone. V tomto článku teda budeme hovoriť podrobne o inštancii, jej použití a vlastnostiach, ktoré prináša do tabuľky.

V tomto článku sa budeme zaoberať nasledujúcimi ukazovateľmi,





Poďme začať!

Čo je to inštancia v Pythone?

Inštancia Python sa používa na kontrolu, či prvý objekt, ktorý je argumentom, je inštancia alebo podtrieda triedy classinfo, ktorá je druhým argumentom.



Syntax pre inštanciu v Pythone je nasledovná.

isinstance (object, classinfo)

Pozrime sa, aké parametre a návratovú hodnotu má Isinstance v Pythone,



Parameter a návratová hodnota inštancie

Parameter

dĺžka javascriptového poľa

Teraz, keď ste si vedomí syntaxe pre inštanciu, sa pozrime bližšie na parametre, ktoré berie do úvahy.

  1. Objekt: Toto je objekt, ktorý je potrebné skontrolovať.
  2. Classinfo: Toto je trieda, informácia alebo n-tica tried, proti ktorým je potrebné objekt skontrolovať.

Návratová hodnota

Keď sa v programe použije inštancia, návratová hodnota závisí od množstva podmienok, ako je vysvetlené v nasledujúcich ukazovateľoch.

  1. Hodnota True sa vráti, ak je objekt podtriedou classinfo alebo n-tinou tried.
  2. Hodnota False sa vráti, ak objekt nie je podtriedou classinfo alebo n-tinou tried.

Ak v konkrétnej situácii nie je classinfo typ alebo n-tica typov, potom sa na obrazovku používateľa vyvolá výnimka typeerror.

Príklady

Aby sme lepšie pochopili použitie inštancie, pozrime sa na niekoľko príkladov.

Príklad č

trieda Foo: a = 5 fooInstance = Foo () print (isinstance (fooInstance, Foo)) print (isinstance (fooInstance, (list, tuple))) print (isinstance (fooInstance, (list, tuple, Foo)))

Výkon

Pravdaže

Falošné

Pravdaže

Príklad v Pythone: Príklad č. 2

numbers = [1, 2, 3] result = isinstance (numbers, list) print (numbers, 'instance of list?', result) result = isinstance (numbers, dict) print (numbers, 'instance of dict?', result ) result = isinstance (numbers, (dict, list)) print (numbers, 'instance of dict or list?', result) number = 5 result = isinstance (number, list) print (number, 'instance of list?', result) result = isinstance (number, int) print (number, 'instance of int?', result)

Výkon

[1, 2, 3] inštancia zoznamu? Pravdaže

[1, 2, 3] príklad diktátu? Falošné

soľ vs kuchár vs bábka

[1, 2, 3] príklad diktu alebo zoznamu? Pravdaže

5 príklad zoznamu? Falošné

5 príklad int? Pravdaže

Príklad č

# Pythonský kód pre test triedy isinstance (): a = 5 TestInstance = Test () print (isinstance (TestInstance, Test)) print (isinstance (TestInstance, (list, tuple))) print (isinstance (TestInstance, (list, tuple) , Test)))

Výkon

Pravdaže

Falošné

Pravdaže

Poďme pokračovať v článku „Isinstance In Python“ a pochopme použitie metódy Type,

Použitie Type v Pythone

Podobne ako v inštancii, aj v Pythone existuje iná zabudovaná metóda, ktorá sa používa na kontrolu premennej typu pf, ktorá sa používa počas behu programu. Ak je metódou type odovzdaný jeden argument alebo objekt, vráti typ objektu, ktorý sa používa počas behu programu.

Ak tomu chcete lepšie porozumieť, pozrite si príklad uvedený nižšie.

Príklad v Pythone: Príklad č. 1.1

# Typ kódu Pythonu () s parametrom jedného objektu x = 5 s = 'sampleoutput' y = [1,2,3] print (type (x)) print (type (s)) print (type (y))

Výkon

trieda „int“

trieda „str“

„zoznam“ triedy

Príklad č. 1.2

# Pythonský kód pre typ () s názvom, # základne a parameter dict o1 = type ('X', (object,), dict (a = 'Foo', b = 12)) print (type (o1)) print (vars (o1)) test triedy: a = 'Foo' b = 12 o2 = typ ('Y', (test,), dict (a = 'Foo', b = 12)) print (typ (o2)) tlač (vars (o2))

Výkon

{„B“: 12, „a“: „Foo“, „__dict__“:, „__doc__“: žiadne, „__weakref__“:}

{‘B’: 12, ‘a’: ‘Foo’, ‘__doc__’: None}

Porovnajme Type a Isinstance v Pythone,

Rozdiel medzi Type () a Isinstance

Typ a inštancia v Pythone slúžia dvom veľmi odlišným funkciám. Pozrite sa na ukazovatele nižšie, aby ste lepšie pochopili rozdiel medzi nimi.

  1. Ak potrebujete skontrolovať, či má objekt určitý typ, je najlepšie použiť inštanciu. Je to tak preto, lebo inštancia bude schopná skontrolovať, či je objekt odovzdaný v prvom argumente rovnakého typu ako objekt odovzdaný v druhom argumente.
  2. Na druhej strane, použitie typu je výhodnejšie, keď potrebujete jednoducho skontrolovať typ konkrétneho objektu a neporovnávať ho s iným.

Príklad

# Kód Pythonu na ilustráciu triedy písania kačice Používateľ (objekt): def __init __ (self, meno): self.firstname = meno @ vlastnosť def name (self): návrat self.firstname trieda Zviera (objekt): prejsť triedou Fox (Zviera) : name = 'Fox' trieda Bear (Animal): name = 'Bear' # Použite atribút .name (alebo vlastnosť) bez ohľadu na typ pre in [User ('SampleOutput'), Fox (), Bear ()] : print (a.name)

Výkon

SampleOutput

Fox

Medveď

Ďalším dôvodom, prečo nepoužívať typovú metódu, je nedostatok dedičstva. Zoznámte sa s príkladmi zdieľanými nižšie, aby ste tomu lepšie porozumeli.

#python kód na ilustráciu nedostatku # podpory dedenia v triede type () MyDict (dict): '' 'Normálny diktát, ktorý sa vždy vytvorí pomocou' počiatočného 'kľúča' '' def __init __ (self): self [ 'initial'] = 'some data' d = MyDict () print (type (d) == dict) print (type (d) == MyDict) d = dict () print (type (d) == dict) print (typ (d) == MyDict)

Výkon

Falošné

Pravdaže

aký je rozdiel medzi abstraktnou triedou a rozhraním?

Pravdaže

Falošné

Tak toto, chalani, to nás privádza na koniec tohto článku. Dúfam, že ste pochopili Isinstance v Pythone a čo robí.

Ak chcete získať podrobné informácie o Pythone a jeho rôznych aplikáciách, môžete pre živé online školenie s nepretržitou podporou a doživotným prístupom.

Máte na nás otázku? Uveďte ich v sekcii komentárov tohto článku a my sa vám ozveme.