Comments 7
a = b = c = 8
Стоило бы упомянуть про приколы с мутабельными объектами, чтобы хоть что-нибудь содержательное было.
a = b = 0
a = 1
print(a, b)
>> 1 0
a = b = []
a.append(1)
print(a, b)
>> [1] [1]
О, это то издательство с самыми корявыми переводами!
1) В Питоне переменные это не контейнеры, в которые помещается значение. В Питоне это ссылки на объекты. Из этого вытекают некоторые неочевидные нюансы. Например с изменяемыми объектами, как уже написали выше.
2) ИМХО, строго типизированые языки, это те, которые не производят неявного преобразования типов. Питон строго типизированый язык. JS, например - не строго типизируемый. Отличие от языков со статической типизацией то, что в питоне определение типа происходит динамически, в момент выполнения. В языках со статической типизацией определение типа происходит в момент, как правило, компиляции.
Некоторые языки программирования, такие как Java, требуют указания типов переменных при их объявлении. При этом резервируется определенный объем памяти.
java уже много-много релизов как (с JDK 10, т.е. уже лет 6 как) не требует указания типов переменных при объявлении. И при этом никакой объем памяти (возможно) не резервируется.
С одной стороны, автор вроде бы пишет про питон, а в java не специалист. С другой стороны, когда я (специалист в java, и не очень специалист в питоне) пишу что-то про питон, я обычно это проверяю. Именно потому, что каждый день с этим не работаю.
Мораль - автор не удосуживается факт чекингом. Пытаясь упростить описание для начинающих, выбрасывает существенные вещи. Не советую.
Иногда все же требует. Такая строчка создаст недопонимание компилятора
var i = null;
Ну да, согласен. Но это не отменяет того факта, что автор пытается что-то объяснить по аналогии, при том что аналогии эти он берет из области, которую знает недостаточно хорошо. Да и вообще, если это пишется для начинающих, желающих изучить питон. Поможет ли им аналогия с java, которую они скорее всего тоже не знают, или только запутает?
Кроме того, выделение памяти не имеет в общем случае отношения к статической типизации. Тип-то вполне может быть статически известен, а память таки не выделена. Ну и про указатели ничего не сказано - а нужно.
Python для начинающих на примере работы с переменными