Co je instance v Pythonu a jak ji implementovat?



Tento článek vám představí metodu, kterou je Isinstance v Pythonu, a poskytne vám důkladné koncepční vysvětlení s ukázkou.

je jedním z nejsilnějších programovacích jazyků dostupných na současném trhu. Python také podporuje implementaci dalších programovacích jazyků v rámci svého ekosystému, jako je Java, C a C ++. Z mnoha modulů a funkcí, které jsou k dispozici v pythonovském ekosystému, je jedním z těch, které vynikají mezi ostatními, instance v Pythonu. V tomto článku tedy budeme podrobně hovořit o instanci, jejím použití a funkcích, které přináší do tabulky.

V tomto článku se budeme zabývat následujícími ukazateli,





Pojďme začít!

Co je Isinstance v Pythonu?

Instance Pythonu se používá ke kontrole, zda je prvním objektem, který je argumentem, instance nebo podtřída třídy classinfo, která je druhým argumentem.



Syntaxe pro instanci v Pythonu je následující.

isinstance (object, classinfo)

Podívejme se, jaké parametry a návratovou hodnotu má Isinstance v Pythonu,



Parametr a návratová hodnota instance

Parametr

výukové programy pro vizuální studio pro začátečníky

Nyní, když jste si vědomi syntaxe pro instanci, pojďme se blíže podívat na parametry, které bere v úvahu.

  1. Objekt: Toto je objekt, který je třeba zkontrolovat.
  2. Classinfo: Toto je třída, informace nebo n-tice tříd, u kterých je třeba objekt zkontrolovat.

Návratová hodnota

Když se v programu použije instance, návratová hodnota závisí na řadě podmínek, jak je vysvětleno v níže uvedených ukazatelích.

  1. Hodnota True se vrátí, pokud je objekt podtřídou třídyinfo nebo n-ticí tříd.
  2. False je vrácena, pokud objekt není podtřídou classinfo nebo n-tice tříd.

Pokud v konkrétní situaci není classinfo typ nebo n-tice typů, pak se na obrazovku uživatele vyvolá výjimka typeerror.

Příklady

Abychom lépe porozuměli použití instance, pojďme se podívat na několik příkladů.

Příklad č. 1

třída Foo: a = 5 fooInstance = Foo () print (isinstance (fooInstance, Foo)) print (isinstance (fooInstance, (list, tuple))) print (isinstance (fooInstance, (list, tuple, Foo)))

Výstup

Skutečný

Nepravdivé

Skutečný

Příklad v Pythonu: Pří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ýstup

[1, 2, 3] instance seznamu? Skutečný

[1, 2, 3] instance diktátu? Nepravdivé

která metoda třídy skeneru čte řetězec

[1, 2, 3] instance diktátu nebo seznamu? Skutečný

5 instance seznamu? Nepravdivé

5 instance int? Skutečný

Příklad č. 3

# Pythonský kód pro test třídy isinstance (): a = 5 TestInstance = Test () print (isinstance (TestInstance, Test)) print (isinstance (TestInstance, (list, tuple))) print (isinstance (TestInstance, (list, tuple) , Test)))

Výstup

Skutečný

Nepravdivé

Skutečný

Pokračujme v článku „Isinstance In Python“ a pochopme použití metody Type,

Použití Type v Pythonu

Podobně jako isinstance existuje další vestavěná metoda v Pythonu, která se používá ke kontrole proměnné typu pf, která se používá za běhu. Pokud je metodou type předán jeden argument nebo objekt, vrátí typ objektu, který se používá za běhu.

Abyste tomu lépe porozuměli, podívejte se na níže uvedený příklad.

Příklad v Pythonu: Příklad č. 1.1

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

Výstup

třída „int“

třída „str“

„seznam“ třídy

Příklad č. 1.2

# Pythonský kód pro type () s názvem, # základy a parametr dict o1 = type ('X', (object,), dict (a = 'Foo', b = 12)) print (type (o1)) print (vars (o1)) test třídy: a = 'Foo' b = 12 o2 = typ ('Y', (test,), dict (a = 'Foo', b = 12)) print (typ (o2)) tisk (vars (o2))

Výstup

{„B“: 12, „a“: „Foo“, „__dict__“:, „__doc__“: Žádné, „__weakref__“:}

{„B“: 12, „a“: „Foo“, „__doc__“: žádný}

Porovnejme Type a Isinstance v Pythonu,

Rozdíl mezi Type () a Isinstance

Typ a instance v Pythonu slouží dvěma velmi odlišným funkcím. Podívejte se na níže uvedené ukazatele, abyste lépe porozuměli rozdílu mezi nimi.

  1. Pokud potřebujete zkontrolovat, zda má objekt určitý typ, je nejlepší použít instanci. Důvodem je, že isinstance bude moci zkontrolovat, zda je objekt předaný v prvním argumentu stejného typu jako objekt předaný v druhém argumentu.
  2. Na druhou stranu je použití typu upřednostňováno, když potřebujete jednoduše zkontrolovat typ konkrétního objektu a neporovnávat ho s jiným.

Příklad

# Kód Pythonu pro ilustraci třídy psaní kachen Uživatel (objekt): def __init __ (self, firstname): self.firstname = firstname @property def name (self): return self.firstname class Animal (object): pass class Fox (Animal) : name = 'Fox' třída Bear (Animal): name = 'Bear' # Použijte atribut .name (nebo vlastnost) bez ohledu na typ pro v [User ('SampleOutput'), Fox (), Bear ()] : tisk (a.name)

Výstup

SampleOutput

Liška

Medvěd

Dalším důvodem, proč nepoužívat metodu typu, je nedostatek dědičnosti. Podívejte se na níže sdílené příklady, abyste tomu lépe porozuměli.

#python kód pro ilustraci nedostatku #support dědičnosti ve třídě type () MyDict (dict): '' 'Normální diktát, který je vždy vytvořen pomocí' počátečního 'klíče' '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ýstup

Nepravdivé

Skutečný

rozdíl mezi mělkou kopií a hlubokou kopií v Javě

Skutečný

Nepravdivé

Tak to to lidi, to nás přivádí na konec tohoto článku. Doufám, že jste pochopili Isinstance v Pythonu a co dělá.

Chcete-li získat podrobné znalosti o Pythonu a jeho různých aplikacích, můžete pro živé online školení s 24/7 podporou a celoživotním přístupem.

Máte na nás dotaz? Uveďte je v sekci komentářů tohoto článku a my se vám ozveme.