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 ()

Вообще больше всего третьему питону не хватает нормальной поддержки WSGI. По факту вебню приходится на 2.x писать.

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

> Высокопроизводительные числодробилки на питоне не пишут.

Не знаю насчет «высокопроизводительных», но числодробилки на Питоне пишут.

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

> Чем оно лучше F#?

Нету микрософта и нету рантайма весом в 100 Мб.

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

> Не знаю насчет «высокопроизводительных», но числодробилки на Питоне пишут.

Да, я сам писал. Но это, скорее, экспериментальный прототип. Даже с привлечением Numpy/SciPy или даже Cython - скорость будет в разы меньше того, что достижимо в нативном коде. Куда уж тут с многопоточностью запариваться.

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

> Не знаю насчет «высокопроизводительных», но числодробилки на Питоне пишут.

Странно, за табы лупят по рукам, а за числодробилки на Питоне - нет.
Вот времена пошли ))

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

Высокопроизводительные числодробилки на питоне не пишут.

не совсем так, есть всякие numpy итп, просто они не на питоне написаны :).

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

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

был на презентации чуваков которые разрабатывают numpy и scipy. Там есть нюансы, всё зависит от того что тебе нужно. Да, эти модули могут проигрывать pure-C коду, но зачастую это легко отбивается скоростью разработки.

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

> не совсем так, есть всякие numpy итп, просто они не на питоне написаны :).

Вы не различаете числодробилки и библиотеки для числодробления? Мне вас жаль (c)

yk4ever ()

Подскажите редактор для python3 (в emacs`е пока что нет поддержки)

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

> был на презентации чуваков которые разрабатывают numpy и scipy. Там есть нюансы, всё зависит от того что тебе нужно. Да, эти модули могут проигрывать pure-C коду, но зачастую это легко отбивается скоростью разработки.

Про то и речь. Прототипирование. В нём питону нет равных.

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

> Подскажите редактор для python3 (в emacs`е пока что нет поддержки)

Geany.

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

Тогда пруф обратной несовместимости в 2.х питона?

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

>Нету микрософта

Это недостаток.

и нету рантайма весом в 100 Мб.

А вы-таки считаете каждый байтик? И при этом пишете на пейтонах? Лол.

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

А для меня споры C vs Pascal всегда были довольно смешными, поскольку их отличия я не считал принципиальными

с таким подходом можно сказать что python от ruby тоже принципиально не отличается :)

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

> Вы не различаете числодробилки и библиотеки для числодробления?

А вы их различаете?

Мне вас жаль (c)

Аналогично.

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

Прототипирование

не, я про другое. Пусть прога на питоне будет работать не 4 часа, а 20. Зато писать её будешь не неделю(с ловлей сигфолтов и прочими прелестями сей) а полтора дня. Я бы не назвал это прототипированием.

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

Вы не различаете числодробилки и библиотеки для числодробления? Мне вас жаль (c)

В чём разница? В питоне половина либ на C написано, мне теперь вешаться от этого? :). Мне себя не жаль, у мну всё хорошо :).

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

Нет. Принципиально отличаются python и lisp, lisp и ML, например. Использование непринципиально отличных инструментов - дело целесообразности и вкуса

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

>>...не осилив человеческий multithreading...

А ты вместо threading:

http://docs.python.org/py3k/library/threading.html

используй multiprocessing:

http://docs.python.org/py3k/library/multiprocessing.html

Там синтаксис почти идентичен и к threading, так что прогу сильно переписывать не надо, а GIL эффективно обходится стороной!

Ага. Отруби себе член и обойди триппер стороной. :^)

Ты вообще понимаешь разницу между ними и зачем вообще народ парил себе мозг разными там NPTL если всегда можно было просто сделать fork?

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

Пусть прога на питоне будет работать не 4 часа, а 20. Зато писать её будешь не неделю а полтора дня.

Только в качестве разовой нужды прокатит.

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

Я написал, каким образом. В приличных проектах всё и так в юникоде (см. django, например), это просто баг, который, видимо, никому не мешает.

По поводу непринципиальности: ну сделали в тройке тип bytes, который заменил нынешний str, что в этом принципиально нового?

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

Ну да, пока ты сам не полезешь за чем нить, что не обернуто в djangoвскую либо, все будет хорошо. А вот как пошел фаил открывать, так все - прилетает что попало

Ну то, что массив байт нельзя считать строкой. И массив байт не интерпретируется как строка

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

> Это недостаток.

хихи

А вы-таки считаете каждый байтик? И при этом пишете на пейтонах?

Нет, не считаю. Но, как показывает практика, питон жрёт ресурсы в меру, а жабо и шарп - сверх меры.

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

> Тогда пруф обратной несовместимости в 2.х питона?
смотрим:
Oct 02 2009: Python 2.6.3 final release
и отмеченное как Remove & Deprecation
зы: шаз взахлеб будут рассказывать, что никто «Remove & Deprecation»
не использовал ))

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

> В чём разница? В питоне половина либ на C написано

Да. Но библиотеки - это не приложения. А числодробилка - это собснно приложение.

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

Странно, за табы лупят по рукам

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

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от namezys

А повторить так и не получается:

`--> chmod +x a.py
.-(~)----------------------------------------------------------------------------------------------------------------------------------------(binary@binary)-
`--> cat a.py
#!/usr/bin/python

try:
    open('aa', 'rb')
except Exception as e:
    s = unicode(e)

print s
.-(~)----------------------------------------------------------------------------------------------------------------------------------------(binary@binary)-
`--> ./a.py 
[Errno 2] No such file or directory: 'aa'
.-(~)----------------------------------------------------------------------------------------------------------------------------------------(binary@binary)-
`--> locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=

Binary ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

> Табы повышают стройность и читабельность кода.

А потом вы этот код открываете в другом редакторе - или вставляете в HTML - и у вас получается месиво.

Нет, табы в коде юзать нельзя категорически. Они не портабельны.

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

>Ну то, что массив байт нельзя считать строкой. И массив байт не интерпретируется как строка

Вряд ли этого достаточно для экономического обоснования :) Приличные люди вполне спокойно живут с нынешней реализацией.

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

Посмотрел в убунте — те же яйца, всё работает нормально. Единственный вариант, когда я поймал сообщение на русском — в gentoo и ipython, но там и defaultencoding выставился в utf-8 и всё снова работает правильно. Я даже не знаю, может версиями помериться?)

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

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

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

> Нет, табы в коде юзать нельзя категорически. Они не портабельны.

Сейчас вас научат как их __СДЕЛАТЬ__ портабельными. Держитесь!

alx_me ★★☆ ()
Ответ на: комментарий от I-Love-Microsoft

> Табы повышают стройность и читабельность кода.

<неразборчиво>, табы в пистоне это обязательное условие синтаксиса ЯП,
а не стройность и читабельность.

Пробелами шпигуют код только студенты и лентяи, не настроившие IDE.


ой труженик какой.. , а astyle
http://astyle.sourceforge.net/astyle.html
видел хоть раз ?))

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

> в перле потоки между собой никаких данных не шарят

По умолчанию не шарят. Но можно объявить переменную как shared и переменная расшарится. Хотя механизм расшаривания невсегда очевиден. Например, для чтения данных из одного файла в несколько потоков уже нужно извращаться.

Vovka-Korovka ★★★★★ ()
Ответ на: комментарий от true_admin

Я не знаток Перл. Но из того, что я знаю о нем, то семантически - не очень.

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

Смени дистрибутив на нормальный.

«Нормальный» - это который не знает про Python 3, да?

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

> Приличные люди вполне спокойно живут с нынешней реализацией.

Несколько раздражает писать u"..." каждый раз.

Ну и, запрет 8-битных кодировок - это хорошая организационная мера по вправлению мозгов жителям ASCII-говорящих стран.

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

> Сейчас вас научат как их __СДЕЛАТЬ__ портабельными. Держитесь!

[зевая] всяких балбесов повидал, не спужают

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

а astyle видел хоть раз?

Видел и юзал активно - мегавесчь. Табы всегда прекрасно отображаются в любом редакторе и ничего не плывет. Особенно с немоноширинным шрифтом - все так же корректно отображается. И можно настроить по вкусу - кто-то любит 2, 4 а кто-то 6 и 8 пробелов на таб - читаемость повышается, но это индивидуально. А с пробелыми ты обречен.

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от elipse

> <неразборчиво>, табы в пистоне это обязательное условие синтаксиса ЯП,

Вы не в теме.

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

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

>Ну и, запрет 8-битных кодировок - это хорошая организационная мера по вправлению мозгов жителям ASCII-говорящих стран.

Согласен. Однако, на переход джанго и твистеда на тройку чего-то не хватает этого.

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

«Нормальный» - это который не знает про Python 3, да?

У меня арч, если что. Я ответил на вопрос?

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

семантически - не очень

может и не очень, но код там зачастую совсем другой из-за встроенной поддержки регекспов и прочего сахара. Это можно увидить на(о боже, я даю ссылку на перловый сайт) rosettacode.org

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

Да. Но библиотеки - это не приложения. А числодробилка - это собснно приложение.

numpy это что?

true_admin ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

> Табы всегда прекрасно отображаются в любом редакторе и ничего не плывет.

Наглое враньё. Плывёёёт, ещё как. Особенно когда особо продвинутые граждане напихают мешанину из табов и пробелов. Питон, славтеяйцы, бьёт за такое по рукам, но остальные языки-то не настолько вменяемые.

Особенно с немоноширинным шрифтом - все так же корректно отображается.

Пользуюсь преимущественно немоноширинным шрифтом. Разумеется, отступы через пробелы абсолютно корректно отображаются.

И можно настроить по вкусу - кто-то любит 2, 4 а кто-то 6 и 8 пробелов на таб

Оформление инженерных проектов (чертежей, исходного кода) не надо «любить». Надо просто следовать единым стандартам. И привыкать к ним.

«Harden the fuck up, Stefan.»

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