При неявной типизации изменение типа функции, которая инициализирует переменную можно получить неожиданный результат при сохранении компилируемости. К примеру, с INTEGER на REAL при проверке на равенство. Это вполне согласуется с динамическими языками, но статические теряют в контроле.
Пример несколько надуман. Однако тип можно оставить, почему нет. Отдельная секция для этого все равно не нужна:
i: int = 123
Для кого надуман, для кого - бытовуха. Любите валить всё в одну кучу, прям как переменные и код. Эта часть ответа был о реализации в питоне и связи с динамической логикой, а не о том, что для явного задания типа нужна отдельная секция.
Да, не имеет. По моему мнению секция VAR больше из области "здесь так заведено". Когда-то на заре ЯП было принято расписывать в какую ячейку какая переменная пойдет... А КАПС хорошо смотрелся на монохромном (два цвета) мониторе...
Однажды проходя мимо коллеги, внезапно увидел знакомые "BEGIN - END". Когда я спросил его, что это, он ответил, что VHDL, а ключевые слова хоть и не регистрозависимые, но заглавными буквами ему удобней. Я посмеялся, вспомнив широко известную в узких кругах спецолимпиаду. Человеку 24 года, об Обероне не слышал, программирует на Си.
Питоновский вариант достаточным не считаю.
Сформулируй, что является достаточным.
Единое поле видимости для всей функции, очевидность принадлежности, логичность представления. Увы, кроме 1-го, всё достаточно субъективно, особенно 3-й, так что попытки найти
идеальный общий знаменатель будут бесплодны.
Хорошо, у тебя есть сведения, что виртовский (или какой-то другой) компилятор использует эту особенность для восстановления после ошибок? Или это все-таки было придумано по ходу дела?
Как минимум тот, что пишу я(свет скорей всего не увидит), с остальными не разбирался. Боже упаси меня придумывать по ходу дела для вашего развлечения.
Начнем с того, что строчек будет уже не 10, а 8 - за счет отсутствия VAR. Где там можно чего-то намешать - не представляю. Я ж говорю - привычка. Желание иметь отдельную одну полку. Хотя с тремя крючками удобнее.
10 строк кода - это 10 строк кода, переменные отдельно. Глянул сейчас на свой код - много функций побольше 10 строк, и самое сложное будет при их дроблении - это выдумывание адекватных названий для этих искусственных лепёшек, и сбор их в единый контекст.