Jenyay
Июнь 28, 2008 20:42:51
Не смог удержаться от того, чтобы не попробовать первые бета-версии Python 2.6 и 3.0. В результате разродился довольно большой статьей про то, что в них появилось нового. Статься лежит
здесьНадеюсь, модераторы меня не убьют :))
shiza
Июнь 28, 2008 20:54:24
О! спасибо!
просто отлично!
Jenyay
Июнь 29, 2008 07:56:41
Пожалуйста, рад, что понравилось :)
bw
Июнь 29, 2008 08:22:32
> Кроме того, будет создан файл с именем print_test.txt, который будет содержать строку “Тест1 Тест2 Тест3”.
В какой кодировке? На сколько я понимаю сейчас по умолчанию будет использовать utf-8 и текст в файл будет помещен предварительно сконвертированным в utf-8? Конечно, заработал пример только в 2.6, где еще не используются unicode по умолчанию, поэтому кодировка будет такой же в которой написан сам код. Вопрос относится к 3.0.
p.s. Не нравится мне Python 3, очень. (Кроме идеи со строками.) Постараюсь как можно дольше продержаться на текущей ветке.
p.p.s. Не нравится что сделали с print (следующей жертвой будет return?) и форматированием строк. Отсутствие обратной совместимости.
..bw
Jenyay
Июнь 29, 2008 08:29:55
bw
Я думаю, что в 3.0 тоже будет utf-8.
А чем 3.0 не нравится? Если добиться, чтобы заработал старый код, то вполне ничего. Но для начала хотелось бы на 2.6 перейти, но для этого придется ждать пока под него заработают нужные библиотеки.
bw
Июнь 29, 2008 10:46:00
> А чем 3.0 не нравится?
В p.p.s. в первом посту ответил.
> Еще одно заметное нововведение в Python 3.0 (в 2.6 этого нет) - это новый оператор // для целочисленного деления.
Этот оператор появился в 2.4, если не раньше. Я им пользуюсь, хотя это, как правило, не обязательно, для совместимости со следующими версиями. Но с учетом того как много изменений теперь придется внести в код, что бы он завелся на Py3, использование такого деления только для совместимости вряд ли оправданно.
> В Python 3.0 не стало функции xrange(), осталась только range(), но теперь она возвращает не список, а итератор.
Странно. Короткие списки, если использовать их в цикле for, работали быстрее “коротких итераторов” (в 2.3, про др. не знаю). xrange я использовал в основном для экономии памяти. И теперь не будет работать код " + range(10)"?!
p.s. Спасибо за обзор.
..bw
Jenyay
Июнь 29, 2008 11:01:12
> Этот оператор появился в 2.4, если не раньше.
Это я действительно странно написал, учитывая, что примеры с // пробовал и в старом питоне. Попробую переписать эту фразу.
bialix
Июнь 29, 2008 11:03:49
bw
> В Python 3.0 не стало функции xrange(), осталась только range(), но теперь она возвращает не список, а итератор.
Странно. Короткие списки, если использовать их в цикле for, работали быстрее “коротких итераторов” (в 2.3, про др. не знаю). xrange я использовал в основном для экономии памяти. И теперь не будет работать код " + range(10)"?!
range(-1, 10) спасет отца русской демократии?
bialix
Июнь 29, 2008 11:04:30
P.S. мне тоже не нравится 3.0
Jenyay
Июнь 29, 2008 11:05:07
Еще не понятно зачем надо было переименовывать xrange в range, уж оставили бы его со старым именем, а range удалили, если он им так мешал.