Функція type() повертає тип об’єкта в Python. Наприклад:
|
1 2 3 4 5 |
prime_numbers = [2, 3, 5, 7] # Перевіряємо тип об'єкта prime_numbers result = type(prime_numbers) print(result) |
Результат:
<class 'list'>
Синтаксис функції type()
Функція type() має дві різні форми:
|
1 2 3 4 5 |
# Функція type() з одним параметром type(object) # Функція type() з трьома параметрами type(name, bases, dict) |
Параметри функції type()
Функція type() приймає або один параметр:
object — об’єкт, тип якого повертається.
Або приймає три параметри:
name — ім’я класу; стає атрибутом __name__;
bases — кортеж, який описує базовий клас; стає атрибутом __bases__;
dict — словник, який є простором імен, що містить визначення для тіла класу; стає атрибутом __dict__.
Значення, яке повертає функція type()
Функція type() повертає:
тип об’єкта, якщо вказано лише один параметр object;
новий тип, якщо вказано три параметри.
Приклад №1: Функція type() із параметром object
|
1 2 3 4 5 6 7 8 9 10 11 |
numbers_list = [1, 2] print(type(numbers_list)) numbers_dict = {1: 'one', 2: 'two'} print(type(numbers_dict)) class Foo: a = 0 foo = Foo() print(type(foo)) |
Результат:
<class 'list'>
<class 'dict'>
<class '__main__.Foo'>
Для перевірки типу об’єкта також рекомендується використовувати функцію isinstance() в Python, яка додатково перевіряє, чи є вказаний об’єкт екземпляром підкласу.
Приклад №2: Функція type() з трьома параметрами
|
1 2 3 4 5 6 7 8 9 10 11 12 |
o1 = type('X', (object,), dict(a='Foo', b=12)) print(type(o1)) print(vars(o1)) class test: a = 'Foo' b = 12 o2 = type('Y', (test,), dict(a='Foo', b=12)) print(type(o2)) print(vars(o2)) |
Результат:
<class 'type'>
{'a': 'Foo', 'b': 12, '__module__': '__main__', '__dict__': <attribute '__dict__' of 'X' objects>, '__weakref__': <attribute '__weakref__' of 'X' objects>, '__doc__': None}
<class 'type'>
{'a': 'Foo', 'b': 12, '__module__': '__main__', '__doc__': None}
У програмі ми використали функцію vars(), яка повертає атрибут __dict__. Атрибут __dict__ використовується для зберігання атрибутів об’єкта, доступних для запису.
У разі потреби ми можемо легко змінити ці атрибути. Наприклад, якщо потрібно змінити атрибут __name__ об’єкта o1 на 'Z', можна використати:
|
1 |
o1.__name__ = 'Z' |
