Как узнать тип переменной Python

Содержание статьи
Введение
type()
Пример использования type()
isinstance()
Пример использования isinstance()

Введение

В Python есть две функции type() и isinstance() с помощью которых можно проверить к какому типу данных относится переменная.

type()

Встроенная функция type() это самый простой способ выяснить тип. Вы можете воспользоваться следующим образом.

print(type(var_list))

Пример использования type()

В Python всего пять типов данных. Создайте пять переменных разного типа и проверьте работу функции:

var_int = 1380 var_str = 'heihei.ru' var_bool = True var_list = ['heihei.ru','topbicycle.ru','urn.su'] var_tuple = ('andreyolegovich.ru', 'aredel.com') print(type(var_int)) print(type(var_str)) print(type(var_bool)) print(type(var_list)) print(type(var_tuple))

<class 'int'> <class 'str'> <class 'bool'> <class 'list'> <class 'tuple'>

Спецификацию функции type() вы можете прочитать на сайте docs.python.org

С помощью команды type() можно, например, определить куда установлен Python.

Подробнее об этом можете прочитать здесь

type python3

python3 is hashed (/usr/bin/python3)

type python

python3 is hashed (/usr/bin/python)

isinstance()

Кроме type() в Python есть функция isinstance(), с помощью которой можно проверить не относится ли переменная к какому-то определённому типу.

Иногда это очень удобно, а если нужно - всегда можно на основе isinstance() написать свою функцию.

Пример использования

Из isinstance() можно сделать аналог type()

В Python пять типов данных, создадим пять переменных разного типа и проверим работу функции

var_int = 1380 var_str = 'heihei.ru' var_bool = True var_list = ['heihei.ru','topbicycle.ru','urn.su'] var_tuple = ('andreyolegovich.ru', 'aredel.com') if (isinstance(var_int, int)): print(f"{var_int} is int") else: print(f"{var_int} is not int") if (isinstance(var_str, str)): print(f"{var_str} is str") else: print(f"{var_str} is not str") if (isinstance(var_bool, bool)): print(f"{var_bool} is bool") else: print(f"{var_bool} is not bool") if (isinstance(var_list, list)): print(f"{var_list} is list") else: print(f"{var_list} is not list") if (isinstance(var_tuple, tuple)): print(f"{var_tuple} is tuple") else: print(f"{var_tuple} is not tuple")

Результат

1380 is int heihei.ru is str True is bool ['heihei.ru', 'topbicycle.ru', 'urn.su'] is list ('andreyolegovich.ru', 'aredel.com') is tuple

Напишем свою фукнцию по определению типа typeof() на базе isinstance

def typeof(your_var): if (isinstance(your_var, int)): return 'int' elif (isinstance(your_var, bool)): return 'bool' elif (isinstance(your_var, str)): return 'str' elif (isinstance(your_var, list)): return 'list' elif (isinstance(your_var, tuple)): return 'tuple' else: print("type is unknown")

Протестируем нашу функцию

print(f"var_list is {typeof(var_list)}")

var_list is list

В C++ похожую задачу решает функция typeid()

Читать статью: «Как определить тип переменной C++»

В .NET / C# за это отвечает функция GetType()

Поиск по сайту

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: