воскресенье, 1 мая 2011 г.

Динамическая типизация переменных в Python

Переменные в  Python объявляются непосредственно перед присваивании им значений. То есть ниже приведен пример  использования переменных для решения простого математической задачи


    Сначала присваивается  переменной а значение 23 затем переменной b значение 34,а следующее действие складывает два значения и затем полученный результат выводится строкой ниже. Как можно заметить для того чтобы записать переменную, перед ней не нужно ставить никаких символов, так для присваивания данных переменой в PHP нужно перед переменной поставит символ $. Так как мы работаем в интерактивном режиме, то чтобы получить результат выполнения сложения двух переменных  a+b мы не присваиваем полученный результат никакой переменной чтобы потом вывести значение этой переменной, а просто складываем две переменные, и полученный результат выводится строкой ниже,  в следующих статьях  мы поговорим о том в чем различия интерактивного режима и  создания  модуля. Так в чем заключается динамическая типизация? А заключается она в следующем, когда мы присваиваем какое то значение переменной то это значение сохраняется в отдельной ячейки, которая состоит из двух значений это тип данных и само значение переменной, а переменная является всего лишь ссылка на эту ячейку данных, на следующем рисунке более наглядно показан механизм взаимодействия переменной с данными.
     На следующем примере видно как одна и та же переменная может быть и вещественным и числовым и строковым типами, так как переменная не имеет типа, а только ссылается на ячейки с определенными типами.

     На данном примере с начало присваивается присваивается разные типы данных, а потом выводится результат присваивания.
В Python хорошо настроен сборщик мусора, который удаляет значения ячеек на которые не ссылаются переменные. Освобождая тем самым место для других значений, что нельзя сказать о таких языках как C, C++, Java в которых нужно запускать сборщик мусора самому.  

Комментариев нет: