[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