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

Mikhail Gusarov =?iso-8859-1?q?dottedmag_=CE=C1_altlinux=2Eorg?=
Сб Апр 12 09:48:56 MSD 2008


Twas brillig at 19:52:20 11.04.2008 UTC+04 when Maksim Otstavnov did gyre and gimble:

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

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

Применимый - это в котором у переменной есть тип?

У переменных в Python нет типа.

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

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

Хорошо. В вашем видении питона значение, соответствующее при выполнении
"литералу массива", описываемому таким-то грамматическим правилом, является
неизменным. Это не так.

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

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

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

Тогда можете считать, что есть указательная семантика (хоть это и неверно
фактически). В чём проблема-то?

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

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

В Python всегда переменной слева присваивается ссылка (или указатель, если вы
так уж настаиваете). А вы не знали?

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

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

А чему учить, кстати? Алгоритмике? Да и там, в общем-то, не помешает O()-нотация
применительно к памяти и скорости операций, а это на уровне абстрактных значений
особо не рассказать.

Т.е. ваш основной point состоит в том, что в python везде ссылки (ага,
"псевдоуказательная семантика" - замечательно, чтобы понять, что это за
бредотермин, пришлось десяток писем написать)? И как вы собрались учить людей,
не рассказывая им про память и вычислительную сложность операций?

-- 
JID: dottedmag на altlinux.org / dottedmag на jabber.dottedmag.net
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 196 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/community/attachments/20080412/53ddf6cf/attachment-0002.bin>


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