Динамическая типизация в Python — как работает
В этом уроке вы узнаете о динамической типизации в Python и о том, как она работает.
Введение в динамическую типизацию в Python
В некоторых языках программирования, таких как Java или C#, при объявлении переменной вам необходимо указать для нее тип данных.
Например, в Java вы можете объявить переменную типа String и инициализировать ее значение следующим образом:
String message = "Hello";
Java создает новый объект String со значением «Hello», а также переменную message с типом String и ссылается на переменную message на объект String.
В статически типизированных языках типы данных связаны с переменными. Позже, если вы присвоите переменной message целое число, это не сработает. Причина в том, что переменная message уже связана с типом String, а не с целочисленным типом.
В отличие от статически типизированных языков, Python является динамически типизированным языком. При объявлении переменной в Python вы не указываете для нее тип:
message = 'Hello'
В Python переменная message — это просто ссылка на объект, который представляет собой строку. С переменной message не связан тип.
Если вы присвоите число переменной message, это прекрасно:
message = 100
В этом случае Python создает новый целочисленный объект, и message ссылается на новый целочисленный объект:
Чтобы определить тип объекта, на который в данный момент ссылается переменная, вы используете функцию type().
В следующем примере определяется переменная с именем message и присваивается ей строка «Hello»:
message = 'Hello' print(type(message))
Выход:
<class 'str'>
Когда вы присваиваете номер переменной message, тип объекта, на который ссылается переменная, также изменяется:
message = 100 print(type(message))
Выход:
<class 'int'>