Python

Что такое типизация в языках программирования или как типизация реализована в python??

2.Типизация в языках программирования (что такое статическая и динамическая, явная и неявная, сильная и слабая), Реализация типизации в Python?
Статическая типизация: каждая переменная имеет жёстко заданный при её объявлении тип. Соответственно, присвоить переменной можно только значение этого типа.

Динамическая типизация: у переменной нет типа, тип есть у значения, которое присваивается переменной. И в любой момент времени любой переменной можно присвоить значение любого типа.

Сильная типизация: отсутствуют автоматические (неявные) преобразования типов - все преобразования типов производятся явной записью операций преобразования. Типы фактических параметров при вызове подпрограммы должны точно совпадать с типами формальных параметров в заголовке подпрограммы. Не допускается смешивание в выражении значений разных типов (например, нельзя сложить значения целой и вещественной переменных).

Слабая типизация: автоматическое преобразование значений в значения других типов (число в строку, логическое значение в число и т. д.), многоэтажные правила такого автоматического преобразования. Отсутствие контроля типов параметров.

В Python динамическая типизация, которую нельзя (несмотря на все рекламные заявления) назвать сильной: как по причине наличия автоматического преобразования типов (True + 7 является совершенно корректным выражением), так и по причине полного отсутствия типизации параметров подпрограмм. Объявление "типа параметра" в Python - это не типизация а ничего не значащая аннотация, которая не оказывает никакого влияния на код и никак не проверяется.

P.S. Предельно слабая динамическая типизация - JavaScript, предельно сильная статическая - Go, слабая статическая - С, сильная динамическая - похоже, среди известных мне языков такого нет.
Andrey_64_2011
Andrey_64_2011
54 907
Лучший ответ
Ну, типа того что в одних языках при объявлении переменной нужно сразу объяснять интерпритатору что за штучка такая ему подсована - число, строка, булево значение... А в других это делать не обязательно, интерпритатор и сам разберется
Например в Java статическая, а в Javascript динамическая
Юра Фёдоров
Юра Фёдоров
98 556