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

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.

Shrnutí

  • 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.
  • Pro typ() můžete předat jeden argument a návratovou hodnotou bude typ třídy daného argumentu, např. 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.
  • Python má vestavěnou funkci nazvanou instance(), která porovnává hodnotu s daným typem. Pokud se zadaná hodnota a typ shodují, vrátí hodnotu true, jinak false. Pomocí isinstance() můžete testovat řetězec, float, int, list, tuple, dict, set, class atd.
  • Pomocí metody isinstance() můžete testovat řetězec, float, int, list, tuple, dict, set, class atd.