![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
ToshaCh |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 555 Регистрация: 10.11.2005 Где: Москва, РФ Репутация: нет Всего: 26 |
Собственно зачем так сделано и почему эта явно функциональная черта есть только у строк, а, например, числа не обладают этим свойством? Ну и вечный вопрос, что делать. Очевидно, что нужно менять подход к программированию, но как? Т.е. предпологается, что работая со строками я должен исповедовать функциональные подходы, а с числами можно и традиционные? -------------------- Slackware 12.2 | Linux 2.6.27 | Fluxbox 1.1.1 | Wmii 3 | Opera 9.63 -- Oracle это не только способ отмывания денег, но и вполне себе преличная база данных. |
|||
|
||||
Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: нет Всего: 62 |
Позиционируют как фичу
![]()
Learning Python, Third Edition, written by Mark Lutz (O'Reilly, 2008; ISBN: 0596513984). Copyright © 2008 O'Reilly Media По моему проблемы нет и поведение вполне логичное. Ты ведь не можешь обратиться к числу через индексатор, а для строки это просто удобно. Самый большой баг Python 2, наверно то что функция strftime() уже 10 лет не может работать с датами меньше 1900 года ![]() Это сообщение отредактировал(а) Ch0bits - 10.5.2012, 19:30 |
|||
|
||||
ToshaCh |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 555 Регистрация: 10.11.2005 Где: Москва, РФ Репутация: нет Всего: 26 |
Нашел интерестную ссылку по этому поводу: http://effbot.org/pyfaq/why-are-python-strings-immutable.htm
Т.е. всеже на питоне рекомендуется писать как на функциональном языке. -------------------- Slackware 12.2 | Linux 2.6.27 | Fluxbox 1.1.1 | Wmii 3 | Opera 9.63 -- Oracle это не только способ отмывания денег, но и вполне себе преличная база данных. |
|||
|
||||
Karadul |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: нет Всего: 1 |
Только неизменяемые типы могут применяться как ключи в хеш-массивах.
Если тебе по каким-то причинам нужен изменяемый буфер (например, для I/O), юзай bytearray() (c 2.6)
Добавлено через 1 минуту и 12 секунд А где оно у чисел? |
|||
|
||||
ToshaCh |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 555 Регистрация: 10.11.2005 Где: Москва, РФ Репутация: нет Всего: 26 |
Да я уже понял, что с числами таже самая петрушка. Забавные язык этот питон. -------------------- Slackware 12.2 | Linux 2.6.27 | Fluxbox 1.1.1 | Wmii 3 | Opera 9.63 -- Oracle это не только способ отмывания денег, но и вполне себе преличная база данных. |
|||
|
||||
Karadul |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: нет Всего: 1 |
Ты не с си перешел случайно? Привыкай, такой подход во всех высокоуровневых языках - а не высокоуровневые - это си и асм. Да и даже в си юникодовые строки присваиванием в середину лучше трогать аккуратно. Это сообщение отредактировал(а) Karadul - 18.5.2012, 15:08 |
|||
|
||||
ToshaCh |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 555 Регистрация: 10.11.2005 Где: Москва, РФ Репутация: нет Всего: 26 |
Это в каких таких всех? В каком это языке не сработает string1[2]='3'? Кроме функциональных, разумеется. Это сообщение отредактировал(а) ToshaCh - 18.5.2012, 17:35 -------------------- Slackware 12.2 | Linux 2.6.27 | Fluxbox 1.1.1 | Wmii 3 | Opera 9.63 -- Oracle это не только способ отмывания денег, но и вполне себе преличная база данных. |
|||
|
||||
Karadul |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: нет Всего: 1 |
В яве точно не сработает. Сработает в перле. С другой стороны, я не знаю, что будет, если попытаться записать больше или меньше символов/байтов в середину оригинала, чем там было.
А в каких еще сработает? В высокоуровневых языках есть собстенно строки - обычно неизменяемые, ибо иначе не получится использовать их как ключ в хеш-массивах, и изменяемые буферы, в яве, как и в си, это массивы, в питоне - bytearray() |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |