Python 3.0

Не знаю когда выйдет «Пайтон» версии 3 (roadmap я не смотрел), но что в нём нового мне хочется знать уже сейчас. Из всех изменений для меня наиболее непонятное замена конструкции print на функцию с тем же названием. Видимо для того, чтобы можно было её перекрыть?

Это изменение для меня лично неудобно. В дальнейшем придётся держать в голове на какой версии я пишу — 2.5 или 3.0 (в 2.6 эту функцию можно импортировать из модуля __future__). В Python 2.5 конструкция print () выведет пустой тупл (tuple), а в Python 3.0 — пустую строку. Соотвественно, print (’a’, ’b’) в 2.5 означает печать тупла со значениями ’a’ и ’b’, а в 3.0 — вывод двух строковых параметров.

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

Поделиться
Отправить
 6   2008   python
13 комментариев
sl37.livejournal.com 2008

Никакой альтернативы двойным подчеркиваниям не придумали?

Евгений Степанищев (bolknote.ru) 2008

Комментарий для sl37.livejournal.com:

Увы, нет :(

Это одна из двух вещей, которая в Пайтоне мне кажется костылём. Зато вполне логично заменили range на xrange. Существование их двоих мне всегда казалось избыточным. Ещё понравилось, что has_key у словарей заменили на in.

А вот за что убили мой любимый <> я не знаю. Мне он всегда больше нравился, чем !=

wiktar (wiktar.com) 2008

Комментарий для Евгения Степанищева:

Ну «!=» — это «не равно», а «<>» — это «меньше-больше» ;)

Да, единственное, что мне не нравится в Питоне — __это__подчёркивания__.

Евгений Степанищев (bolknote.ru) 2008

Комментарий для wiktar.com:

a!=b — это «факториал „а“ равен „b“», а <> — это «больше или меньше».

мне ещё декораторы в Python не нравятся.

zencd.livejournal.com 2008

Комментарий для Евгения Степанищева:

На мой взгляд, люди чаще оперируют понятием «не равно», нежели «больше или меньше».

Евгений Степанищев (bolknote.ru) 2008

Комментарий для zencd.livejournal.com:

!= — это такой же набор значков, как и <>. Никто в уме не раскладывает его на «не» и «равно», тем более, что это и неверно, так как «=» — это присваивание, «==» — вот так записывается сравнение. Значки воспринимаются монолитно и какой как воспринимается — вопрос опыта, а не логики. Вряд ли кто-то скажет, что «@something» — это декоратор в «Пайтоне». Почему «@»? Какая тут логика?

Так что я тут «!=» ровно столь же логичен, как и <>. Но последний мне нравится больше из-за одинаковой насыщенности элементов.

voldmar (voldmar.ya.ru) 2008

in для словарей и в 2.5 есть.

А декораторы чем тебе не нравятся?

Евгений Степанищев (bolknote.ru) 2008

Комментарий для voldmar.ya.ru:

Декораторы не нравятся тем, что это похоже на макроязык. А мне не нравятся макроязыки.

Я неверно высказался. «has_key» у словарей больше не будет, будет только «in».

voldmar (voldmar.ya.ru) 2008

Комментарий для Евгения Степанищева:

Это ты про навешивание десяти декораторов на функцию?

Евгений Степанищев (bolknote.ru) 2008

Комментарий для voldmar.ya.ru:

И про это тоже. Сама конструкция @что-то кажется очень чужеродной.

zencd.livejournal.com 2008

Комментарий для Евгения Степанищева:

Всё-таки в != и <> есть логика, в отличии от @, где приходится тупо запоминать. Так что не согласен что «вопрос опыта». Ну ладно можно и на брэйнфаке писать, но на интуитивность такое решение уже не претендует.

Лично я про себя думаю «не равно», я в этом плане ограничиваюсь и использую минимум конструкций. Полагаю, именно из-за этого связка «!» («не») с «=» («равно») мне идеально подходит. Если бы я думал «больше или меньше», идеальнее было бы «<>». Кстати, в «<>» ещё и отсутствует слово «или»; может и мелочь, но «!=» в этом смысле полнее описывает работу мозга и в этом же смысле короче («не равно» vs «больше или меньше»).

zencd.livejournal.com 2008

Вообщем, хорошо бы собрать статистику как думают программисты и на основе этого принимать решение — всё ж для людей дело делается :-)

Евгений Степанищев (bolknote.ru) 2008

Комментарий для zencd.livejournal.com:

Экая теория из ничего ;)

Логично или нет, а связка «!=» просто запоминается. Распознаётся тоже монолитно. А мы можем сознательно её делить или нет. Если же говорить о том, что лучше с точки зрения логики, то я за <>, она более раскрывает суть, чем «неравно». Думаю, спор, по большому счёт, пустой. В Python3 этой конструкции не будет и (увы) точка.

Популярное