type() i isinstance() w Python z przykładami

Co to jest type() w Python?

Python ma wbudowaną funkcję o nazwie type(), która pomaga znaleźć typ klasy zmiennej podanej jako dane wejściowe. Na przykład, jeśli danymi wejściowymi jest ciąg znaków, wynik otrzymasz jako , dla listy, tak będzie itp.

Za pomocą polecenia type() możesz przekazać pojedynczy argument, a zwracaną wartością będzie typ klasy podanego argumentu, przykład: type(obiekt).

Możliwe jest także przekazanie trzech argumentów do type(), tj. type(name, bases, dict), w takim przypadku zwróci Ci nowy obiekt typu.

Składnia typu()

type() można używać na dwa sposoby, jak pokazano poniżej:

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

Parametry: typ (obiekt)

  • obiekt: Jest to parametr obowiązkowy. Jeśli jest to tylko parametr przekazany do type(), wówczas zwróci on typ parametru.

Parametry: type(nazwa, podstawy, dykt)

  • nazwa: nazwa klasy.
  • podstawy: (opcjonalnie). Jest to parametr opcjonalny i jest to klasa bazowa
  • dykt: (opcjonalnie). Jest to parametr opcjonalny i jest to przestrzeń nazw zawierająca definicję klasy.

Wartość zwracana

Jeśli obiekt jest jedynym parametrem przekazanym do funkcji type(), zwróci ona typ obiektu.

Jeśli parametry przekazane do type to typ (obiekt, podstawy, dykt), w takim przypadku zwróci obiekt nowego typu.

Przykład typu()

W tym przykładzie mamy wartość ciągu, liczbę, wartość zmiennoprzecinkową, liczbę zespoloną, listę, krotkę, słownik i zestaw. Użyjemy zmiennych z typem, aby zobaczyć wynik dla każdej 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))

Wyjście:

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

Przykład: użycie type() dla obiektu klasy.

Kiedy sprawdzasz obiekt utworzony z klasy za pomocą type(), zwraca on typ klasy wraz z nazwą klasy. W tym przykładzie utworzymy klasę i sprawdzimy typ obiektu utworzony na podstawie testu klasy.

class test:
    s = 'testing'

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

Wyjście:

<class '__main__.test'>

Przykład: użycie nazwy, baz i słownika w type()

Typ można również wywołać za pomocą składni: type(name, bases, dict).

Trzy parametry przekazane do type()ie, name, bases i dict to komponenty tworzące definicję klasy. Nazwa reprezentuje nazwę klasy, bases to klasa bazowa, a dict to słownik atrybutów klasy bazowej.

W tym przykładzie użyjemy wszystkich trzech parametrów, tj. name, bases i dict w type().

Przykład:

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

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

Wyjście:

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

Przekazanie wszystkich trzech argumentów do funkcji type() ułatwia zainicjowanie nowej klasy z atrybutami klasy bazowej.

Czym jest isinstance() w Python?

Python isinstancja jest częścią Wbudowane funkcje Pythona. Python Funkcja isinstance() przyjmuje dwa argumenty i zwraca wartość true, jeśli pierwszy argument jest instancją informacji o klasie podaną jako drugi argument.

Składnia isinstancja()

isinstance(object, classtype)

Parametry

  • object: Obiekt, którego instancję porównujesz z typem klasy. Zwróci true, jeśli typ pasuje, w przeciwnym razie false.
  • typ klasy: typ lub klasa lub krotka typów i/lub klas.

Wartość zwracana

Zwróci wartość true, jeśli obiekt jest instancją typu klasy, i false, jeśli nie.

Przykłady isinstance()

W tej sekcji przestudiujemy różne przykłady, aby nauczyć się funkcji isinstancja()

Przykład: isinstance() Sprawdzanie liczby całkowitej

Poniższy kod porównuje wartość całkowitą 51 z typem int. Zwróci wartość true, jeśli typ 51 będzie pasował do typu int, w przeciwnym wypadku będzie false.

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

Wyjście:

age is an integer: True

Przykład: isinstance() Kontrola pływaka

W tym przykładzie porównamy wartość float z typem float, tj. wartość 3.14 zostanie porównana z typem float.

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

Wyjście:

pi is a float: True

Przykład: isinstance() sprawdzanie ciągu

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

Wyjście:

message is a string: True

Przykład: isinstance() Sprawdzanie krotki

Kod sprawdza krotkę (1,2,3,4,5) z typem krotki. Zwróci wartość true, jeśli podane dane wejściowe są typu krotka, i false, jeśli nie.

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

Wyjście:

my_tuple is a tuple: True

Przykład: isinstance() Ustaw kontrolę

Kod sprawdza zestaw ({1,2,3,4,5}, z ustawionym typem. Zwróci wartość true, jeśli podane dane wejściowe są typu set, i false, jeśli nie.

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

Wyjście:

my_set is a set: True

Przykład: sprawdzenie listy isinstance().

Kod sprawdza listę [1,2,3,4,5] z listą typów. Zwróci wartość true, jeśli podane dane wejściowe są typu list, i false, jeśli nie.

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

Wyjście:

my_list is a list: True

Przykład: sprawdzanie dyktowania isinstance().

Kod sprawdza, czy istnieje dykt({„A”:”a”, „B”:”b”, „C”:”c”, „D”:”d”}, z typem dykt. Zwróci wartość true, jeśli podane dane wejściowe są typu dict i false, jeśli nie.

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

Wyjście:

my_dict is a dict: True

Przykład: test isinstance() w klasie

Kod pokazuje sprawdzenie typu klasy za pomocą isinstance(). Obiekt klasy jest porównywany z nazwą klasy wewnątrz isinstance(). Zwraca true, jeśli obiekt należy do klasy i false w przeciwnym wypadku.

class MyClass:
    _message = "Hello World"

_class = MyClass()

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

Wyjście:

_class is a instance of MyClass() True

Różnica między typem() a isinstance() w Python

rodzaj() isinstance ()
Python ma wbudowaną funkcję o nazwie type(), która pomaga znaleźć typ klasy zmiennej podanej jako dane wejściowe. Python ma wbudowaną funkcję isinstance(), która porównuje wartość z podanym typem. Jeśli wartość i podany typ pasują do siebie, zwróci true, w przeciwnym razie false.
Wartość zwracana jest obiektem typu Zwracaną wartością jest wartość logiczna, tj. prawda lub fałsz.
class A:
my_listA = [1,2,3]

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

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

Wyjście:

True
False

W przypadku typu sprawdzenie podklasy zwraca wartość false.

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

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

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

Wyjście:

True
True

isinstance() daje wartość prawdziwą, gdy jest sprawdzana z podklasą.

Podsumowanie

  • Python ma wbudowaną funkcję o nazwie type(), która pomaga znaleźć typ klasy zmiennej podanej jako dane wejściowe. Na przykład, jeśli danymi wejściowymi jest ciąg znaków, wynik otrzymasz jako , dla listy, tak będzie itp.
  • W przypadku type() możesz przekazać pojedynczy argument, a zwracaną wartością będzie typ klasy podanego argumentu, np. type(obiekt).
  • Możliwe jest także przekazanie trzech argumentów do type(), tj. type(name, bases, dict), w takim przypadku zwróci Ci nowy obiekt typu.
  • Python ma wbudowaną funkcję o nazwie instance(), która porównuje wartość z podanym typem. Jeśli wartość i podany typ pasują do siebie, zwróci true, w przeciwnym razie false. Używając isinstance(), możesz testować string, float, int, list, tuple, dict, set, class, itd.
  • Używając metody isinstance(), możesz testować ciągi, liczby zmiennoprzecinkowe, int, listy, krotki, dyktowania, zbiory, klasy itp.