type() a isinstance() v Python s příklady

⚡ Chytré shrnutí

Python type() a isinstance() jsou vestavěné funkce pro kontrolu třídy objektu. type() vrací přesný typ, zatímco isinstance() testuje, zda objekt patří do třídy nebo n-tice tříd. Obě jsou zde uvedeny s příklady.

  • 🔍 typ(): Vrátí přesnou třídu objektu, například str, int nebo list.
  • (Tj. isinstance(): Zkontroluje, zda je objekt instancí dané třídy, a vrátí hodnotu True nebo False.
  • 🧩 Tříargová funkce typu(): type(name, bases, dict) dynamicky vytváří zcela nový objekt třídy.
  • ???? Podtřídy: isinstance() vrací True pro podtřídy; type() kontroluje pouze přesnou třídu.
  • 🎯 Případy užití: Ověřte typy vstupů, ladicí proměnné a logiku větvení podle typu objektu.
  • 🤖 Pomoc s umělou inteligencí: Nástroje umělé inteligence jako Copilot generují kontroly type() a isinstance() na vyžádání.

type() a isinstance() v Python

Co je type() in Python?

Python má vestavěnou funkci nazvanou type(), která vám pomůže najít typ třídy proměnné zadané jako vstup. Pokud je například vstupem řetězec, dostanete výstup jako , pro seznam to bude atd.

Pomocí příkazu type() můžete předat jeden argument a návratovou hodnotou bude typ třídy daného argumentu, příklad: typ(objekt).

Type() je také možné předat tři argumenty, tj. type(name, bases, dict), v takovém případě vám vrátí nový typový objekt.

Syntaxe pro typ()

type() lze použít dvěma způsoby, jak je uvedeno níže:

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

parametry: typ (objekt)

  • objekt: Toto je povinný parametr. Pokud se jedná pouze o parametr předaný type(), vrátí vám typ parametru.

parametry: typ (jméno, základy, diktát)

  • jméno: název třídy.
  • základy: (volitelné). Toto je volitelný parametr a je to základní třída
  • dict: (nepovinné). Toto je volitelný parametr a je to jmenný prostor, který má definici třídy.

Návratová hodnota

Pokud je objekt jediným parametrem předávaným do type(), vrátí vám typ objektu.

Pokud jsou parametry předané typu type (object, bases, dict), v takovém případě vrátí nový typ objektu.

Příklad type()

V tomto příkladu máme hodnotu řetězce, číslo, plovoucí hodnotu, komplexní číslo, seznam, n-tice, dict a set. Použijeme proměnné s typem, abychom viděli výstup pro každou z nich.

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

Výstup:

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

Příklad: Použití type() pro objekt třídy.

Když zkontrolujete objekt vytvořený z třídy pomocí type(), vrátí typ třídy spolu s názvem třídy. V tomto příkladu vytvoříme třídu a zkontrolujeme typ objektu vytvořený z testu třídy.

class test:
    s = 'testing'

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

Výstup:

<class '__main__.test'>

Příklad: Použití názvu, základů a diktátu v type()

Typ lze také volat pomocí syntaxe: type(name, bases, dict).

Tři parametry předané typu()ie, name, bases a dict jsou komponenty, které tvoří definici třídy. Název představuje název třídy, báze je základní třída a dict je slovník atributů základní třídy.

V tomto příkladu použijeme všechny tři parametry, tj. name, base a dict v type().

Příklad:

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

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

Výstup:

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

Když předáte všechny tři argumenty typu() , pomůže vám to inicializovat novou třídu s atributy základní třídy.

Co je isinstance() in Python?

Python isinstance je součástí vestavěné funkce pythonu. Python isinstance() přijímá dva argumenty a vrací true, pokud je první argument instancí classinfo zadaného jako druhý argument.

Syntaxe isinstance()

isinstance(object, classtype)

parametry

  • objekt: Objekt, jehož instanci porovnáváte s typem třídy. Vrátí true, pokud typ odpovídá jinak false.
  • class type: Typ nebo třída nebo n-tice typů a/nebo tříd.

Návratová hodnota

Vrátí true, pokud je objekt instancí třídy classtype, a false, pokud ne.

Příklady isinstance()

V této části budeme studovat různé příklady, abychom se naučili isinstance()

Příklad: isinstance() Kontrola celého čísla

Níže uvedený kód porovnává celočíselnou hodnotu 51 s typem int. Vrátí true to typ 51 shod s int jinak false.

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

Výstup:

age is an integer: True

Příklad: isinstance() Float check

V tomto příkladu budeme porovnávat hodnotu float s typem float, tj. hodnota 3.14 bude porovnána s typem float.

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

Výstup:

pi is a float: True

Příklad: isinstance() Kontrola řetězce

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

Výstup:

message is a string: True

Příklad: isinstance() Kontrola n-tice

Kód hledá n-tici (1,2,3,4,5) s typem n-tice. Pokud je zadaný vstup typu n-tice, vrátí hodnotu true a pokud ne, vrátí hodnotu true.

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

Výstup:

my_tuple is a tuple: True

Příklad: isinstance() Set check

Kód zkontroluje množinu ({1,2,3,4,5}, s nastaveným typem. Vrátí hodnotu true, pokud je zadaný vstup typu set, a false, pokud ne.

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

Výstup:

my_set is a set: True

Příklad: kontrola seznamu isinstance().

Kód vyhledá seznam [1,2,3,4,5] se seznamem typů. Vrátí true, pokud je zadaný vstup typu list, a false, pokud ne.

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

Výstup:

my_list is a list: True

Příklad: isinstance() dict check

Kód zkontroluje diktát ({“A“:“a“, „B“:“b“, „C“:“c“, „D“:“d“}, s typem dict. Vrátí hodnotu true, pokud zadaný vstup je typu dict a false, pokud ne.

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

Výstup:

my_dict is a dict: True

Příklad: test isinstance() na třídě

Kód ukazuje kontrolu typu třídy pomocí isinstance() . Objekt třídy je porovnán s názvem třídy uvnitř isinstance(). Vrací true, pokud objekt patří do třídy, a false jinak.

class MyClass:
    _message = "Hello World"

_class = MyClass()

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

Výstup:

_class is a instance of MyClass() True

Rozdíl mezi typem() a isinstance() v Python

typ() isinstance()
Python má vestavěnou funkci nazvanou type(), která vám pomůže najít typ třídy proměnné zadané jako vstup. Python má vestavěnou funkci nazvanou isinstance(), která porovnává hodnotu s daným typem. Pokud se zadaná hodnota a typ shodují, vrátí hodnotu true nebo false.
Vrácená hodnota je objekt typu Návratová hodnota je booleovská, tj. true nebo false.
class A:
my_listA = [1,2,3]

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

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

Výstup:

True
False

V případě typu kontrola podtřídy vrátí hodnotu false.

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

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

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

Výstup:

True
True

isinstance() dává pravdivou hodnotu při kontrole s podtřídou.

Nejčastější dotazy

type() je vestavěná funkce, která vrací třídu objektu. Při předání jednoho argumentu udává typ objektu; při předání tří (název, bázové číslo, slovník) vytváří novou třídu.

isinstance(object, classtype) kontroluje, zda je objekt instancí třídy nebo n-tice tříd. Vrací True, pokud typ odpovídá, a False jinak.

type() vrací přesnou třídu objektu a ignoruje dědičnost, zatímco isinstance() vrací True i pro podtřídy. isinstance() použijte pro flexibilní kontroly typů, které respektují hierarchie tříd.

Ano. Volání type(name, bases, dict) se třemi argumenty dynamicky vrací nový objekt třídy. name je název třídy, bases je n-tice rodičů a dict obsahuje atributy.

Ano. isinstance() vrací True, pokud je objekt instancí třídy nebo některé z jejích podtříd. Díky tomu je pro kontrolu zděděných typů bezpečnější než type().

Asistenti umělé inteligence, jako je například kontrola typu () a isinstance () na GitHub Copilot, generují validační ochrany a navrhují správný přístup pro daný objekt během psaní. Python.

Ano. Nástroje založené na umělé inteligenci dokáží automatizovat vkládání ochranných kontrol isinstance(), detekovat nekontrolované vstupy a refaktorovat porovnání fragile type() do bezpečnějších kontrol isinstance() napříč vaší kódovou základnou.

Funkce type() vrací objekt třídy pro danou hodnotu: list pro seznam a dict pro slovník. Výpis zobrazí formulář podobný class list nebo class dict.

Shrňte tento příspěvek takto: