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