LINUX.ORG.RU

Python 3.2

 


0

0

20 февраля вышел Python 3.2.

Так как действует «Мораторий на измение языка» (PEP-3003), то синтаксис языка остался прежним; было внесено всего несколько изменений во встроенные типы.

Усилия разработчиков были сконцентрированы на стандартной библиотеке и поддержке портирования кода на Python3.

Среди изменений стоит отметить:

  • множественные изменения в модуле unittest;
  • PEP 3147, поддержка PYC Repository Directories;
  • PEP 3149, поддержка контроля версий динамически-подключаемых библиотек;
  • PEP 3148, futures — новая библиотека для асинхронных вычислений (конкурентного программирования);
  • PEP 384, стабильное ABI для модулей расширений;
  • значительно переделан GIL (Global Interpreter Lock);
  • расширенный пакет email, который поддерживает байтовые сообщения;
  • значительно улучшен модуль ssl;
  • новый модуль sysconfig;
  • улучшения модуля shutil, среди которых стоит отметить поддержку архивов;
  • множество улучшений в configparser;
  • улучшен pdb (Python debugger);
  • множественные исправления, связанные с ошибками bytes/string;
  • множественные исправления для численных операций.

>>> Подробности

★★

Проверено: JB ()

Ответ на: комментарий от tailgunner

Ну так в чем проблема?

Ты пост начальный читал?

void foo(int arg1, int arg2,
         int arg3, int arg4)
{

}

для второй строки при иденте таком, что ставит int arg3 точно под int arg1, при использовании табуляции будет использован микс табов и пробелов, т.к. позиция int arg3 не укладывается в кратное число размера табуляции. При открытии в другом редакторе с другим размером табуляции вторая строка уплывёт. Тут либо не оформлять в таком виде код, либо не использовать табуляцию вообще.

Лень искать другие примеры, но приведённый - не единственный, где оно «плыло».

Reaper ★★ ()
Ответ на: комментарий от Lonli-Lokli

Таки не уверен, но будь он написан на сях, наверняка было бы быстрее.

CrossFire ★★★★★ ()
Ответ на: комментарий от Reaper

Ты пост начальный читал?

Я читал пост, в котором был другой фрагмент, не этот:

void foo(int arg1, int arg2,
         int arg3, int arg4)
{

}

а вот этот:

my_var = some_method(param1, param2,
                     param3, param4);

И повторяю - нормально настроенный Eclipse использует правильный микс табов и пробелов. Если emacs этого не умеет, это проблемы емаксеров.

tailgunner ★★★★★ ()
Ответ на: комментарий от anonymous

Это потому что вы много не писали ни на том ни на другом ;)

А каковы, по-вашему принципиальные различия - оба императивны, с похожими системами типов, ручным управлением памятью и т.д.?

cab ★★★★ ()
Ответ на: комментарий от tailgunner

> Это именно плохие языки. Поэтому хорошо, что их заменяет Питон, язык и в самом деле неплохой.

При программировании на фокале я так не думал о бэйсике. Даже, наоборот. Хотя уже тогда знал о лиспе :)

dave ★★★★★ ()

А что правду говорят, что Python - это круто?

Насколько вырастет моя зарплата старшего программиста (в ДС), если я перейду с Java на Питон?

Bioreactor ★★★★★ ()
Ответ на: комментарий от tailgunner

Фрагменты идентичны с точки зрения показанной проблемы.

Объясни на пальцах свой правильный микс, я не понимаю тебя. Если ты имел в виду, что в первом моём примере (он у тебя второй по счёту) во второй строке эклипс ставит пробелы, то это проблему не решает, т.к. my_var может находится в операторном блоке, соответственно, первая строка будет ехать при другом размере табуляции.

Reaper ★★ ()
Ответ на: комментарий от Reaper

В пределах одного оператора, до уровня my_var ставятся табы, начиная с уровня my_var - пробелы.

<tab>my_var = foo(bar,
<tab><spc*13>baz);
<tab>printf(«Как-то так\n»);

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

Теперь дошло. Надо посмотреть, умеет ли так имакс.

Reaper ★★ ()
Ответ на: комментарий от Bioreactor

> Насколько вырастет моя зарплата старшего программиста (в ДС), если я перейду с Java на Питон?

Не подскажешь, где это дурней с такой детской логикой берут старшими программистами? Тут сосед сварщик хочет немного бабла поднять.

anonymous ()

И если мне неймется и не спится
Или с похмелья нет на мне лица -
Открою срач с питоном на любой странице,
И не могу - читаю до конца.

Ichiro ()
Ответ на: комментарий от Reaper

Как он может быть у тебя настроен, если он делает неправильные отступы?

LamerOk ★★★★★ ()
Ответ на: комментарий от Reaper

> А при использовании табуляции в том примере, что я привёл ничего другого для позиционирования кроме микса табуляции и пробелов быть не может.

Бред. Не может, а должен использоваться только таб.

:3

LamerOk ★★★★★ ()
Ответ на: комментарий от Reaper

> Тут либо не оформлять в таком виде код

Разумеется, не оформлять.

LamerOk ★★★★★ ()
Ответ на: комментарий от anonymous

Анонимус-куна не взяли на денежную работу Джава-программистом?

Сочувствую.

Bioreactor ★★★★★ ()

чтобы не было холиваров питону надо завести опцию. в начале файла ставишь опцию (например encoding'а) вида

# -*- only-tabs -*-

или

# -*- only-spaces -*-

и при наличии этой опции только табуляции или только пробелы могут быть использованы в качестве опций форматирования отступов.

какой это даст профит? другой, сторонний разработчик открыв файл не будет натыкаться на ошибки вида «добавил строку - слетело в неизвестном месте»

ну и тролить на тему пробелы-табы станет неуместно

rsync ★★ ()
Ответ на: комментарий от anonymous

да мест полно. на java умные люди не кодят.

anonymous ()
Ответ на: комментарий от rsync

Начнутся истерики на тему «Питон отнял у меня СВОБОДУ перемешивать пробелы с табами!!111»

Lonli-Lokli ★★ ()
Ответ на: комментарий от LamerOk

Как он может быть у тебя настроен, если он делает неправильные отступы?

Ты вообще имакс открывал или чисто теоретически? Он делает такие отступы, на какие настроен, что значит «неправильные»? Настройка заключается в выборе стиля идента, использовании или неиспользовании табуляции и задании размера табуляции.

Reaper ★★ ()
Ответ на: комментарий от rsync

> ошибки вида «добавил строку - слетело в неизвестном месте»

8+ лет работаю - ни разу такой ошибки не видел.

tailgunner ★★★★★ ()

Гвидо запостил в твиттор:

The first Python version, 0.9.0, was released on Feb 20, 1991. Python 3.2.0 was released exactly 20 years later, on Feb 20, 2011.

Zubchick ()
Ответ на: комментарий от tailgunner

Обоснуешь

А это еще и обосновывать нужно?!?! О_О

someMethod(a, long, list,
           of, arguments);
someOtherMethod(another, list,
                of, arguments);
oneMoreMethos(and, one, more, list,
              of, arguments);

Доходчиво, или взять в руку указку?

LamerOk ★★★★★ ()
Ответ на: комментарий от Reaper

> Он делает такие отступы, на какие настроен, что значит «неправильные»?

Неправильные - это мешает табы и пробелы в одну кучу. Это же _очевидно_ не может быть правильным отступом ни в каком случае.

LamerOk ★★★★★ ()
Ответ на: комментарий от LamerOk

> Доходчиво,

Нет.

или взять в руку указку?

Если ты без указки не умеешь объяснять - возьми, конечно.

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

Т.е. приведенный пример тебе не нагляден? Ну, я умываю руки.

LamerOk ★★★★★ ()
Ответ на: комментарий от tailgunner

ошибки вида «добавил строку - слетело в неизвестном месте»

8+ лет работаю - ни разу такой ошибки не видел.

Я видел. У меня имакс (и отступ 4 пробела), коллеги под кате-ом, гедитом и вимом (и отступы в табах). Была такая залепуха, воспользовавшись службным положением приказал всем со-проектникам перейти на пробелы, с табами код не принимается;-)))

AIv ★★★★★ ()
Ответ на: комментарий от AIv

>>> ошибки вида «добавил строку - слетело в неизвестном месте»

8+ лет работаю - ни разу такой ошибки не видел.

Я видел

И компилятор не указал тебе места, в котором ошибка?

tailgunner ★★★★★ ()
Ответ на: комментарий от CrossFire

> Таки не уверен, но будь он написан на сях, наверняка было бы быстрее.

О! Какой чудесный язык Си - правит руки, вгоняет в разум, лечит простатит и вялотекущую шизофрению, изгоняет анонимусов...

antiPooH ()
Ответ на: комментарий от tailgunner

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

AIv ★★★★★ ()
Ответ на: комментарий от tailgunner

с чужим кодом не работаешь?

когда внутри одной компании, то всегда легко составить внутрикорпоративный стандарт на величину отступа. по аналогии с тем как вон Линус Торвальдс для ядра составил. и далее конечно на такие ошибки натыкаться не будешь

rsync ★★ ()
Ответ на: комментарий от Reset

Не парь мозг. Используй Emacs, в нем все работает

anonymous ()
Ответ на: комментарий от anonymous

В емаксе как раз не работает. По крайней мере из коробки.

Reset ★★★★★ ()
Ответ на: комментарий от antiPooH

Ну про анонимусов не знаю, но понимание того, что делаешь, на сях куда глубже, чем на питоне. Ну и дело не только в руках, но и в скорости работы, которая у Си в разы выше.

CrossFire ★★★★★ ()
Ответ на: комментарий от anonymous

отлично, теперь если будут найдены еще конфиги для студии, то можно будет использовать такой режим отступов :)

Reset ★★★★★ ()
Ответ на: комментарий от Bioreactor

Ты настолько однообразен, что даже есть желание напомнить, что 1) з/п любых наёмных рабочих --- по существу копейки 2) сама з/п зависит от места работы, а не от языка 3) пищущим много на яве питон полезен для расслабленного программирования в нерабочее время.

sv75 ★★★★★ ()
Ответ на: комментарий от LamerOk

Т.е. приведенный пример тебе не нагляден? Ну, я умываю руки.

Он кому-то кроме тебя нагляден?

С описанным Тейлганером миксом табов и пробелов, а также эквивалентным показаным Анонимусом режимом SmartTabs в твоём примере проблем не будет.

Reaper ★★ ()
Ответ на: комментарий от cab

1. Пёрл и питон тоже очень похожие языки по такой классификации.

2. Специально для формалистов: в Си есть макросы, нет массивов как типа данных, нет оператора присваивания, нет магических функций, нет нетривиальных по скорости операций (типа сложения строк).

3. Сравните кошерные реализации списков (для Си — list.h, для паскаля — ?)

4. В паскале либо ничего нет (Вирт), либо всё в виде помойки (современный дельфо-фри-паскаль).

5. На си пишут ОС (про виндоуз 1.0 не надо напоминать, это не ОС была)

sv75 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.