Эта статья поможет вам разобраться как работает функция type в языке программирования Python.
Введение
Python имеет множество встроенных функций. В этой статье мы обсудим, как проверить тип данных у переменных в Python с помощью функции type.
При программировании на Python мы пришли к ситуации, в которой хотим проверить тип данных у переменной. Для этого нам необходимо использовать встроенную функцию type.
Описание
Type — это встроенная функция, которая помогает определить тип переменной, передаваемой на вход.
Нужно просто поместить имя переменной внутри функции type, и Python вернет тип данных.
В основном, мы используем ее в целях отладки.
Официальная документация по функции type.
Базовый синтаксис
type(var)
Параметры
Аргумент является необходимым параметром, который принимает внутрь функция type.
Аргументом может быть строка, целое число, список, кортеж, множество, словарь и т.д.
Также мы можем передать в функцию type три аргумента, т.е. type(name, databases, dict). В таком случае он вернет вам новый тип объекта.
Расширенный синтаксис
type(name, bases, dict)
Параметры
- name — это имя класса.
- bases — это необязательный параметр, это имя базового класса.
- dict — это необязательный параметр, и это пространство имён имеет определение класса.
Возвращаемые значения
- Если мы передадим в качестве параметра только объект, то он вернет только тип объекта.
- Если мы передадим имя, базы и диктат в качестве параметра, то он вернет новый тип.
Примеры
Рассмотрим некоторые способы, с помощью которых можно узнать тип данных у переменной.
Использование базового синтаксиса
В этом примере мы будем принимать входные данные во всех форматах для записи переменной типа string, integer, negative value, float value, complex number, list, tuple, set и dictionary. После этого мы распечатаем тип данных всех переменных и посмотрим вывод.
var_str = "Проверка типов с помощью функции Type" print("Тип данных: ", type(var_str)) var_num = 7372189 print("Тип данных: ", type(var_num)) var_negative = -8213 print("Тип данных: ", type(var_negative)) var_float = 35.158 print("Тип данных: ", type(var_float)) var_complex = 1 + 5j print("Тип данных: ", type(var_complex)) var_list = [20, 15, 14, 33, 12] print("Тип данных: ", type(var_list)) var_tuple = (9, 12, 13, 12, 18, 133, 123) print("Тип данных: ", type(var_tuple)) var_dict = {"а": 22, "б": 33, "в": 11} print("Тип данных: ", type(var_dict)) var_set = {"а", "б", "в", "г"} print("Тип данных: ", type(var_set))
Вывод программы
Тип данных: <class 'str'> Тип данных: <class 'int'> Тип данных: <class 'int'> Тип данных: <class 'float'> Тип данных: <class 'complex'> Тип данных: <class 'list'> Тип данных: <class 'tuple'> Тип данных: <class 'dict'> Тип данных: <class 'set'>
Здесь все просто и понятно.
Использование расширенного синтаксиса
В этом примере мы возьмем все параметры, такие как имя, базовый класс и т.д. После этого мы распечатаем вывод. Давайте посмотрим более наглядно с помощью следующего кода:
class TestClass: x = "Тестовая строка" y = 9999 test = type("NewClass", (TestClass,), dict(x="Тестовая строка", y=9999)) print(type(test)) print(vars(test))
Вывод программы
<class 'type'> {'x': 'Тестовая строка', 'y': 9999, '__module__': '__main__', '__doc__': None}
Заключение
В данной статье мы научились проверять тип данных у переменной и изучили как работает функция type с двумя различными методами. Мы также проверили все типы переменных с помощью функции type.
Однако, если у вас есть сомнения или вопросы, дайте мне знать в разделе комментариев ниже. Я постараюсь помочь вам.
Прочитал, что type используется в основном для отладки. Но хочу уточнить, бывают ли ситуации, когда не очевиден тип данных? Какой может быть практический смысл проверки типа? Спасибо
Нет, type используется не для отладки. В языке с динамической типизацией тип данных может быть неочевиден почти всегда), например проверка входных данных от пользователей, поле ввода может принимать строку, но в эту строку засунут целые числа, программа будет думать что это строка. С помощью type можно сверить что тип входящих данных подходит под ожидания, ну и еще конечно есть isinstance для этого.
Ага, спасибо
Ничего не понятно! Если это для новичков!
А для тех кто понимает — зачем это писать?
Нет никакой конкретики, что для чего и почему эти буковки, а не другие
Михаил, здравствуйте, я не делю контент на новичков, средничков и профи, у меня есть желание и возможность написать по какой-то теме — я иду писать. Те люди, которые понимают, они не будут искать информацию, а те кто ищут — ее найдут.
Если вы ничего не понимаете, то, скорее всего, информация не вашего уровня, в программирование на Python множество уровней сложности информации, которую даже и спустя 5 лет программирования можно не понимать.
Не заостряйте внимание на том, что не понимаете совсем, перейдите к более структурированной подаче информации, например в книгах и постепенно углубляйтесь.