Встроенные типы данных
Как уже говорилось, все данные в Python представлены объектами. Имена являются лишь ссылками на эти объекты и не несут нагрузки по декларации типа. Значения встроенных типов имеют специальную поддержку в синтаксисе языка: можно записать литерал строки, числа, списка, кортежа, словаря (и их разновидностей). Синтаксическую же поддержку операций над встроенными типами можно легко сделать доступной и для объектов определяемых пользователей классов.
Следует также отметить, что объекты могут быть неизменчивыми и изменчивыми. Например, строки в Python являются неизменчивыми, поэтому операции над строками создают новые строки.
Карта встроенных типов (с именами функций для приведения к нужному типу и именами классов для наследования от этих типов):
- специальные типы: None, NotImplemented и Ellipsis;
- числа;
- целые
- обычное целое int
- целое произвольной точности long
- логический bool
- число с плавающей точкой float
- комплексное число complex
- целые
- последовательности;
- неизменчивые:
- строка str;
- Unicode-строка unicode;
- кортеж tuple;
- изменчивые:
- список list;
- неизменчивые:
- отображения:
- словарь dict
- объекты, которые можно вызвать:
- функции (пользовательские и встроенные);
- функции-генераторы;
- методы (пользовательские и встроенные);
- классы (новые и "классические");
- экземпляры классов (если имеют метод __call__);
- модули;
- классы (см. выше);
- экземпляры классов (см. выше);
- файлы file;
- вспомогательные типы buffer, slice.
Узнать тип любого объекта можно с помощью встроенной функции type().