[Comm] [JT] создание скриптов [JT]

Maksim Otstavnov =?iso-8859-1?q?maksim_=CE=C1_otstavnov=2Ecom?=
Пт Апр 11 19:52:20 MSD 2008


Hello Mikhail,

Friday, April 11, 2008, 2:13:46 PM, you wrote:

MG> Twas brillig at 14:06:10 11.04.2008 UTC+04 when Maksim Otstavnov did gyre and gimble:

MG>  MG>> У переменных в Python нет типа.
MG>  MO> Переменных без типа не бывает.

MG> Переменные без типа бывают. У переменных в Python нет типа.

(Устало). Откройте применимый словарь на букву "П" и найдите слово
"переменная", честное слово...

MG>  MG>> Вы ведь ничего не говорили про изменение этих экземпляров?

MG>  MO> О каком "изменении экземпляра" может идти речь? Записаны же константы,
MG>  MO> справа от присваивания.

MG> Это в вашем видении питона массив - это константа. Это не так.

(Еще более устало.) Во-первых, это не массив. Во-вторых, в Питоне нет
массивов. В-третьих, даже если бы в Питоне были массивы и это было бы
массивом, буквосочетание "массив --- это константа" (в моем или
чьем-либо еще "понимании") не стало бы от этого более осмысленным.
Массив --- это такая структура данных, а не константа.

MG>  MO> А как Вы здесь различаете "ссылку" и "указатель"?

MG> Указатели - это ссылки с арифметикой.

Ну, есть такое узкое словоупотребление. В данном случае наличие или
отсутствие арифметики над указателями абсолютно никакого значения не
имеет: примеры ее не включают и не предполагают.

MG>  MO> Проблема в том, что в неотличимом синтаксически примере с простыми типами
MG>  MO> --- "x" и "y" будут вести себя уже не как указатели на неименованные
MG>  MO> переменные, а как нормальные переменные:

MG>  MO>   x = 0; y = x; y = 1; print x

MG> Синтаксически замечательно отличимом. Я не замечаю здесь x[0] слева.

Отличие (значимое в данном случае) не в присутствии селектора слева, а
в присутствии выражения (в данном случае, конструктора) сложного типа
справа. В этом случае переменной слева присваивается указатель, а не
значение, плюс при каждом последующем вхождении этой переменной (пока
она сохраняет этот тип) происходит неявное разыменование.

Присутствие селектора связано с тем, что селекция элемента списка ---
это единственный в Питоне способ осуществить манипуляцию с уже
разыменованной переменной, а не с содержащейся в ней ссылкой.

Вы этого не увидели, так что от среднего студента я этого ждать тем
более не буду: ему придется это учить. Вместо того, чтобы заниматься
предметом.

-- 
-- Maksim





Подробная информация о списке рассылки community