type() і isinstance() в Python з прикладами

⚡ Розумний підсумок

Python type() та isinstance() – це вбудовані функції для перевірки класу об'єкта. type() повертає точний тип, тоді як isinstance() перевіряє, чи належить об'єкт до класу або кортежу класів. Обидві показані тут з прикладами.

  • 🔍 тип(): Повертає точний клас об'єкта, наприклад, str, int або list.
  • isinstance(): Перевіряє, чи є об'єкт екземпляром заданого класу, повертаючи True або False.
  • 🧩 Триаргументний тип(): type(name, bases, dict) динамічно створює абсолютно новий об'єкт класу.
  • ???? Підкласи: isinstance() повертає True для підкласів; type() перевіряє лише конкретний клас.
  • 🎯 Користувачі: Перевіряти типи вхідних даних, змінні налагодження та логіку розгалуження за типом об'єкта.
  • 🤖 Допомога ШІ: Інструменти штучного інтелекту, такі як Copilot, генерують перевірки type() та isinstance() на вимогу.

type() і isinstance() в Python

Що таке type(). Python?

Python має вбудовану функцію під назвою type(), яка допомагає вам знайти тип класу змінної, наданої як вхід. Наприклад, якщо введенням є рядок, ви отримаєте вихід як , для списку, буде і т.д.

Використовуючи команду type(), ви можете передати один аргумент, а повернуте значення буде типом класу наданого аргументу, наприклад: type(object).

Також можна передати три аргументи в type(), тобто type(name, bases, dict), у такому випадку він поверне вам новий об’єкт типу.

Синтаксис для type()

type() можна використовувати двома способами, як показано нижче:

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

Параметри: тип (об'єкт)

  • об'єкт: це обов'язковий параметр. Якщо це лише параметр, переданий у type(), він поверне вам тип параметра.

Параметри: тип (назва, основи, dict)

  • ім'я:назва класу.
  • основи: (за бажанням). Це необов'язковий параметр, і це базовий клас
  • dict: (необов'язково). Це необов’язковий параметр, і це простір імен, який містить визначення класу.

значення, що повертається

Якщо об’єкт є єдиним параметром, який передається в type(), тоді він поверне вам тип об’єкта.

Якщо параметри, передані типу, є типом (об’єкт, бази, dict), у такому випадку він поверне новий тип об’єкта.

Приклад type()

У цьому прикладі ми маємо рядкове значення, число, значення з плаваючою точкою, комплексне число, список, кортеж, dict і набір. Ми будемо використовувати змінні з типом, щоб побачити результат для кожної з них.

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

вихід:

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

Приклад: використання type() для об’єкта класу.

Коли ви перевіряєте об’єкт, створений із класу за допомогою type(), він повертає тип класу разом із назвою класу. У цьому прикладі ми створимо клас і перевіримо тип об’єкта, створений на основі тесту класу.

class test:
    s = 'testing'

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

вихід:

<class '__main__.test'>

Приклад: використання імені, баз і dict у type()

Тип також можна викликати за допомогою синтаксису: type(name, bases, dict).

Три параметри, передані в type(), тобто name, bases і dict, є компонентами, які складають визначення класу. Ім’я представляє ім’я класу, bases — базовий клас, а dict — словник атрибутів базового класу.

У цьому прикладі ми збираємося використовувати всі три параметри, тобто name, bases і dict у type().

приклад:

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

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

вихід:

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

Коли ви передаєте всі три аргументи в type(), це допоможе вам ініціалізувати новий клас атрибутами базового класу.

Що таке isinstance(). Python?

Python isinstance є частиною вбудовані функції python. Python isinstance() приймає два аргументи та повертає істину, якщо перший аргумент є екземпляром classinfo, поданим як другий аргумент.

Синтаксис isinstance()

isinstance(object, classtype)

Параметри

  • об’єкт: об’єкт, екземпляр якого ви порівнюєте з типом класу. Він поверне true, якщо тип збігається, інакше false.
  • тип класу: тип або клас або кортеж типів і/або класів.

Повернене значення

Він поверне true, якщо об’єкт є екземпляром classtype, і false, якщо ні.

Приклади isinstance()

У цьому розділі ми вивчимо різні приклади, щоб навчитися isinstance()

Приклад: isinstance() Перевірка цілого числа

Код нижче порівнює ціле значення 51 із типом int. Він поверне true, якщо тип з 51 збігається з int, інакше false.

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

вихід:

age is an integer: True

Приклад: isinstance() Перевірка float

У цьому прикладі ми будемо порівнювати значення float із типом float, тобто значення 3.14 буде порівнюватися з типом float.

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

вихід:

pi is a float: True

Приклад: isinstance() Перевірка рядка

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

вихід:

message is a string: True

Приклад: isinstance() Перевірка кортежу

Код перевіряє наявність кортежу (1,2,3,4,5) із типом tuple. Він поверне значення true, якщо наданий вхід має тип кортежу, і false, якщо ні.

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

вихід:

my_tuple is a tuple: True

Приклад: isinstance() Встановити перевірку

Код перевіряє наявність набору ({1,2,3,4,5}) із встановленим типом. Він поверне значення true, якщо введені дані мають набір типу, і значення false, якщо ні.

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

вихід:

my_set is a set: True

Приклад: перевірка списку isinstance().

Код перевіряє наявність списку [1,2,3,4,5] із типом list. Він поверне значення true, якщо введені дані мають тип list, і false, якщо ні.

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

вихід:

my_list is a list: True

Приклад: перевірка dict isinstance().

Код перевіряє dict({“A”:”a”, “B”:”b”, “C”:”c”, “D”:”d”}, з типом dict. Він поверне true, якщо поданий вхід має тип dict і false, якщо ні.

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

вихід:

my_dict is a dict: True

Приклад: тест isinstance() для класу

Код показує перевірку типу класу за допомогою isinstance(). Об’єкт класу порівнюється з назвою класу всередині isinstance(). Він повертає true, якщо об'єкт належить до класу, і false в іншому випадку.

class MyClass:
    _message = "Hello World"

_class = MyClass()

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

вихід:

_class is a instance of MyClass() True

Різниця між type() і isinstance() в Python

тип () isinstance ()
Python має вбудовану функцію під назвою type(), яка допомагає вам знайти тип класу змінної, наданої як вхід. Python має вбудовану функцію isinstance(), яка порівнює значення з заданим типом. Якщо задане значення та тип збігаються, воно поверне істину, інакше – хибність.
Значення, що повертається, є об’єктом типу Значення, що повертається, є логічним, тобто істинним або хибним.
class A:
my_listA = [1,2,3]

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

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

вихід:

True
False

У разі типу перевірка підкласу повертає false.

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

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

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

вихід:

True
True

isinstance() дає правдиве значення при перевірці підкласом.

Поширені запитання

type() — це вбудована функція, яка повертає клас об'єкта. Якщо передати один аргумент, вона видає тип об'єкта; якщо передати три (назва, базис, словник), вона створює новий клас.

isinstance(object, classtype) перевіряє, чи є об'єкт екземпляром класу або кортежу класів. Повертає True, якщо тип збігається, та False в іншому випадку.

type() повертає точний клас об'єкта та ігнорує успадкування, тоді як isinstance() повертає True також для підкласів. Використовуйте isinstance() для гнучких перевірок типів, які враховують ієрархії класів.

Так. Виклик type(name, bases, dict) з трьома аргументами динамічно повертає новий об'єкт класу. name – це ім'я класу, bases – це кортеж батьківських об'єктів, а dict містить атрибути.

Так. isinstance() повертає True, коли об'єкт є екземпляром класу або будь-якого з його підкласів. Це робить його безпечнішим для перевірки успадкованих типів, ніж type().

Помічники штучного інтелекту, такі як перевірки type() та isinstance() на GitHub Copilot, генерують засоби перевірки валідації та пропонують правильний підхід для заданого об'єкта під час написання. Python.

Так. Інструменти на базі штучного інтелекту можуть автоматизувати вставку захистів isinstance(), виявляти неперевірені вхідні дані та рефакторувати порівняння fragile type() для безпечніших перевірок isinstance() у вашій кодовій базі.

type() повертає об'єкт класу для значення: list для списку та dict для словника. Виведення цього значення відображає форму, подібну до class list або class dict.

Підсумуйте цей пост за допомогою: