[Comm] [JT] создание скриптов [JT]
Maksim Otstavnov
=?iso-8859-1?q?maksim_=CE=C1_otstavnov=2Ecom?=
Пт Апр 11 14:06:10 MSD 2008
Hello Mikhail,
Friday, April 11, 2008, 1:26:40 PM, you wrote:
MG> У переменных в Python нет типа.
Переменных без типа не бывает.
MG> MO> Но я имел в виду всего лишь семантику присваивания с экземпляром сложного
MG> MO> типа справа. Попробуйте:
MG>
MG> MO> x = [0,1]; y = x; y[0] = 2; print x
MG>
MG> Семантика присваивания здесь ни при чём. Перестанье передёргивать и использовать
MG> y[0] слева.
Я абсолютно ничего не передергиваю. Использую обычный селектор, ничем
казалось бы не отличающийся от указания элемента массива или поля
записи. Почем мне знать, что у его внутре неонка и разыменование?
MG> Вы ведь ничего не говорили про изменение этих экземпляров?
О каком "изменении экземпляра" может идти речь? Записаны же константы,
справа от присваивания.
MG> Или вы всего лишь имеете в виду ссылочную семантику? Тогда да -
MG> семантика ссылочная.
А как Вы здесь различаете "ссылку" и "указатель"?
MG> В этом проблема?
Если бы проблема была только в этом, мы бы имели просто что-то вроде
Фортрана IV.
Проблема в том, что в неотличимом синтаксически примере с простыми
типами --- "x" и "y" будут вести себя уже не как указатели на
неименованные переменные, а как нормальные переменные:
x = 0; y = x; y = 1; print x
Ну и плюс Ваш пример, результат которого угадать, даже разобравшись с
семантикой в моих двух примерах, будет... непросто, скажем так.
MG> А, простите, где вы преподаёте? Чтобы случайно не столкнуться с выпускниками,
MG> которым не показали разнообразные семантики языков, а вдолбили привязку типов к
MG> переменным.
Я, простите, свое отпреподавал лет пятнадцать назад. И введения в
программирование, и программно-языковую компаративистику.
--
-- Maksim
Подробная информация о списке рассылки community