Pull to refresh

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, которую они скорее всего тоже не знают, или только запутает?

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

Sign up to leave a comment.

Articles