делая информацию о типе переменной () неизменной

Полезно представить число , в том числе его точность , поэтому 0,5 м можно использовать для обозначения «что-то между 0,45 и 0,55 м» (с соответствующими ограничениями) и 0,50 м можно использовать означает «что-то между 0,495 и 0,545 м».

Я подозреваю, что разработчики most фактически не используют эту функцию, но я вижу, как это может быть полезно иногда.

Я считаю, что эта способность впервые появилась в .NET 1.1, btw - я думаю, что десятичные числа в 1.0 всегда были эффективно нормализованы.

0
задан nurettin 18 January 2019 в 12:01
поделиться

2 ответа

В разделе «Не цели» PEP 484 прямо говорится:

Следует также подчеркнуть, что Python останется динамически типизированным языком, а у авторов нет желание сделать подсказки типа обязательными, даже по соглашению.

Как язык с динамической типизацией, «источником правды» для информации о типах всегда будет тип времени выполнения (динамический) объекта, на который указывает имя. Само имя (в данном случае x) не имеет типа. Он может иметь подсказку типа , которая предполагает , какой тип будут иметь значения, связанные с именем, но эта информация является только подсказкой . Это не нормативно.

Встроенный type() вообще не использует подсказки типов.

x = 'some string'
print(type(x))

всегда будет печатать <class 'str'>, потому что он проверяет фактический объект , на который указывает x, а не что-либо о самом x.

0
ответ дан Daniel Pryden 18 January 2019 в 12:01
поделиться

Python является динамически типизированным языком, поэтому переменные не имеют фиксированного типа. Используемые вами аннотации типов могут быть проверены с помощью такого инструмента, как mypy ( http://mypy-lang.org/ ), для такого рода столкновения типов, но вы не получите ошибку времени выполнения. [ 115]

На более техническом уровне то, что хранится в x, фактически является указателем на значение данных. Когда вы вызываете type(x), интерпретатор найдет значение, на которое указывает x, и вернет тип этого значения. Python явно не проверяет тип значения, которое вы присваиваете переменной. Из wiki.python.org :

В динамически типизированном языке переменная - это просто значение, связанное с именем; значение имеет тип - например, «целое число», «строка» или «список», но сама переменная этого не делает.

0
ответ дан SamSB 18 January 2019 в 12:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: