LINUX.ORG.RU

Сегодня состоялся выпуск Python 3.3

 


0

2

Python 3.3 является первым выпуском, в который включены изменения в языке, после двухлетнего моратория — Python 3.2 имел только внутренние нововведения интерпретатора, не затрагивающие совместимость со старым кодом. Кроме того, это первый выпуск, никакие новые свойства которого не будут портированы в ветку 2.x.

Основные изменения:

  • Синтаксис:
    • оператор
      yield from
    • в целях совместимости и упрощения переноса приложений с ветки 2.x синтаксис строк вида
      u'unicode'
       — никаких реальных изменений.
  • Новые модули:
    • faulthandler для отладки низкоуровневых падений;
    • ipaddress для высокоуровневых операций с адресами и масками;
    • lzma — сжатие данных с помощью алгоритма XZ/LZMA;
    • unittest.mock — тестирование;
    • venv — виртуальные рабочие пространства, независимые от системного, каждое представляет собственный бинарник и набор модулей.
  • Новые встроенные свойства:
  • Улучшения реализации:
  • Улучшения безопасности:
    • рандомизация хэшей включена по умолчанию.

>>> Что нового в Python 3.3

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Silent (всего исправлений: 3)
Ответ на: комментарий от AGUtilities

чтобы уменьшить вероятность совпадения неймспейсов в несвязанных проектах

в смысле если будет два проекта с одинаковым именем? Имхо малореально это. А относительные импорты через точку делаются, питон поймёт куда надо смотреть. Хотя с этим нововведением...

В общем, не то чтобы я был против этого, но длинные имена и иерархии, имхо, зло. Я вот щас даже как-то умудряюсь писать не более 80 символов в строке. Сомневаюсь что в жабе это возможно :)

true_admin ★★★★★
()

представляет собсТвенный бинарник

Поправьте

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

Имхо малореально это

на самом деле, это достаточно вероятно. в джаве, всётаки, имхо, не зря так придумали. я предпочитаю использовать именно java-like стиль, но на данном этапе - это скорее дело вкуса всё таки.

А относительные импорты через точку делаются, питон поймёт куда надо смотреть.

не помню где конкретно (вроде бы PEP-0328), но разрабы питона стремятся избавиться от относительных импортов.

AGUtilities ★★★
()
Последнее исправление: AGUtilities (всего исправлений: 1)
Ответ на: комментарий от AGUtilities

не помню где конкретно (вроде бы PEP-0328), но разрабы питона стремятся избавиться от относительных импортов.

ну вот этот pep как раз за относительные импорты с нотацией через точки (типа import .mymodule; import ..anothermodule). Я не вижу смысла это этого отказываться, наоборот очень разумный подход. Нигде ничего не видел против этого.

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

ну вот этот pep как раз за относительные импорты

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

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

Нигде ничего не видел против этого.

я таки вспомнил почему я против.

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

смотри комментарий к первому ответу http://stackoverflow.com/questions/815367/python-imports-from-crossreferencin...

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

заходишь на pypi в поиск вбиваешь imagemagick и увидишь кучу пакетов , есть для третьей ветки , я экспериментировала с pgmagick.

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

это в каких случаях возникает? Когда циклическая зависимость между модулями и один из них до конца не прогрузился?

Не, слава богу с таким в своём коде не сталкивался :). Но тут никакие импорты не помогут, тут надо код менять.

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

Когда циклическая зависимость между модулями и один из них до конца не прогрузился?

угу

Но тут никакие импорты не помогут, тут надо код менять.

вот именно, что такое может возникнуть даже на стадии импорта.

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

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

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

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

так это же тут не поможет. Проблема не в путях (относительные или абсолютные), а в модулях.

(PS а мне относительные пути нравятся, не люблю лишнюю писану и не понимаю когда они могут навредить)

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

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

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

Подскажите хороших годных книг по Python 3

Изучаем Python, 4-е изд. - Марк Лутц

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

Мне, по техническим причинам, ничего не подошло. Нужно, чтобы был чистый питон (не могу компилировать на целевой машине).

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

Мне, по техническим причинам, ничего не подошло. Нужно, чтобы был чистый питон (не могу компилировать на целевой машине).

Там есть реализации на чистом питоне через ctypes. Но всеравно необходимо чтобы на машине был ImageMagick

yanka ★★
()

Крутые фичи лучшего ЯП! Жаль 3-я ветка пока не актуальна.

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

Мы вот пользуемся и радуемся.

если вы расскажете, для чего именно вы используете pil, я вам расскажу, как решить вашу задачу более эффективно. и, пожалуйста, объясните мне, при чем тут web.

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

Потому что было принято решение исправить все недочёты при дизайне.

уже исправили, ruby называется.

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

ну и платная опять же.

29$ для студентов. в отличие от сублима, который аж 60, за ни за что.

anonymous
()

Совместимость с 2.Х уже запилили? Если да, то попробуем. Если нет, то 5 библиотек, которые критичны для работы оставят меня на 2.Х. Они же и переведут меня на Java.

cab ★★★★
()

Опять начались мои мучения. Кое как стабилизировалось окружение и опять сраный numpy не собирается. Быдлоязык во все поля! Оставили бы его в инсталляторе redhat-а, зачем животных так раздувать, они же лопнут! Или сначала на кошках лет 10 тренируйтесь, потом людей и былопрограммистов тормошите. Ну что же это такое?! Версий как грязи и всякая вошь великих программ нагородила так что систему не соберёшь без бубна. Смерть! Когда же они с совместимостью уже успокоятся, то?

alx_me ★★☆
()

Надо мораторий на языки объявить! Кто поддержит? Давайте так. Десять лет где хотите, но у себя дома развивайте очередной язык и никому не показывайте. java/mono/#/ruby/python/D и прочая поежень молчит в тряпочку лет десять и стабилизирует себя до адеквата. Потом конкурс и все вместе за один раз переходим на новый стандарт. Давайте? Очень прошу!

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

java/mono

задумывались для энтерпрайза

/ruby/python/D

для себя сделали авторы.

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

Совместимость с 2.Х уже запилили?

Никогда не будет. Сделана одна уступка, введён префик u для строк.

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

Опять начались мои мучения. Кое как стабилизировалось окружение и опять сраный numpy не собирается. Быдлоязык во все поля! Оставили бы его в инсталляторе redhat-а, зачем животных так раздувать, они же лопнут! Или сначала на кошках лет 10 тренируйтесь, потом людей и былопрограммистов тормошите. Ну что же это такое?! Версий как грязи и всякая вошь великих программ нагородила так что систему не соберёшь без бубна. Смерть! Когда же они с совместимостью уже успокоятся, то?

Вижу, наболело. Нужно начать с себя.

Vudod ★★★★★
() автор топика

u'unicode'

А как же расхваленный 2to3? (Привычки, он, конечно, не поменяет за кодера сам, а вот существующий код — вполне.)

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

А как же расхваленный 2to3?

2to3 работает сносно, но бывают ситуации, когда в одной и той же программе часть строк помечена как u, другие --- нет. При этом подразумевается, что все они суть юникод, т.к. файл сделан в кодировке utf. А ещё некоторые строки нужно преобразовывать в байты. В принципе, это косяк реализации. Но в таких случаях возможность отследивать u явно помогает.

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

если вы расскажете, для чего именно вы используете pil

Изменение размера, добавление водяного знака для картинок, например.

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

Опять начались мои мучения.

опять сраный numpy не собирается

Мазохисты в треде.

tailgunner ★★★★★
()

благодарю, годная новость!

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

это нужно если ты хочешь сделать пакет, плагины в который могут устанавливаться отдельными пакетами. каждый плагин, таким образом, будет иметь свое поддеревце в site-packages.

ещё это позволяет использовать доменные имена в качестве имён пакетов, типа:

import ru.org.linux.forum.db

Уже давно как во второй ветке реализовали. Проекты требовали. Опенсорснуть что ли?

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

2.* будет жить еще долго

Разумеется. Не выкидывать же работающие системы.

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

Проект py3000 готовился много лет, нереход на третий Питон займёт ещё больше. Вроде бы всё достаточно вылизано и причин ломать совместимость в ближайшие 10-15 лет никто не видит. Гвидо как-то высказывался, что если и будет Питон 4, то, видимо, не при его жизни.

Вообще речь шла про совместимость. То что 4-ый будет не скоро, вовсе не означает, что совместимость не будут ломать.

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

Речь шла о сознательном сломе совместимости при эволюции языка.

Слово «сознательный» в данном контексте не является значимым. Вот если бы рассказали, что не ломали совместимость в предыдущих минорных версиях...

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

Слово «сознательный» в данном контексте не является значимым.

Только оно и является значимым.

Вот если бы рассказали, что не ломали совместимость в предыдущих минорных версиях...

Расскажи мне о сломах совместимости в минорных версиях.

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

Смотри секцию «Porting to Python 3.3».

Даже не знаю, как назвать жалобы на такие изменения. «Нытье» - это слишком мягко.

Причем такого в каждой минорной версии.... :(\

Да, особенно впечатляет http://docs.python.org/py3k/whatsnew/3.1.html#porting-to-python-3-1

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

Даже не знаю, как назвать жалобы на такие изменения. «Нытье» - это слишком мягко.

Назови это подвтерждением постоянной ломки своместимости в минорных версиях.

Важным является то, что написанное для клиентов должно работать на конкретной версии.

x86_64 ★★★
()

faulthandler для отладки низкоуровневых падений;

Давно пора. Эти сегфолты в pycurl и других сишных модулях меня изрядно мучали.

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