Существует несколько вещей, которыми я вполне интересуюсь:
Вполне откровенно говоря, ни один из него. В то время как я буду, вероятно, использовать часть нового синтаксиса, я главным образом использую Python для быстрых и простых сценариев и регулярных выражений.
я думаю, что новые возможности сделают много небольших вещей немного легче для большого количества людей и нескольких больших вещей легкий для нескольких человек. Однако я скептически отношусь к любым заявлениям, что много людей закончит тем, что нашло крупный рост производительности.
Короче говоря, я думаю, что эти изменения сделают вещи немного лучше в целом, но не ожидают чудес.
Вот хорошая статья, которая объясняет новые возможности и/или различия относительно Python 2.x стихи python 3.
Я надеюсь, что исключение, объединяющее в цепочку , завоевывает популярность. Потеря отслеживаний стека исключительной ситуации из-за антишаблона, представленного ниже, была моим главным объектом неприязни в течение долгого времени:
try:
doSomething( someObject)
except:
someCleanup()
# Thanks for passing the error-causing object,
# but the original stack trace is lost :-(
raise MyError("Bad, bad object!", someObject)
я знаю, я знаю, добавляя некоторую информацию о контексте к исходному исключению и , сохранение исходного отслеживания стека было возможно, но это потребовало действительно ужасного взлома. Теперь Вы можете (и должен! ) просто:
raise MyError("Bad, bad object!", someObject) from original_exception
и легко получают оба из вышеупомянутого. Так, как часть моей святой миссии против потерянных отслеживаний стека:
Люди, не забывайте от пункт при переповышении исключений! Спасибо.
Не так функция, но я думаю, что очистка библиотеки очень поможет, особенно новым программистам Python. Больше чем в одном случае хотели, чтобы я сделал что-то в Python только для нахождения двух включенных библиотек, которые предлагают ту функциональность без очевидной причины, почему я должен, выбрал один по другому.
Несмотря на то, что они сделали для достижения наименьшего хода миграции с интерпретируемыми языками, я нахожу целый выпуск python3 как десять лет болезненного пути миграции. Поэтому я не нахожу это особенно притягиванием.
улучшения, которые они сделали, являются всей пользой и важный. Два различных типов для строк были реальным источником раздражений везде, поэтому хорошо, что они избавились от объекта unicode и представили объект байтов в стороне теперь unicode ул.
сверхбольшое число по сравнению с цифрой - изменение было от удобства, и я думаю, что также был хороший выбор. В полном они убрали язык от вредных компонентов, которые они накопили в течение прошлых десяти лет.
Второй с конца вещью, которую они сделали, была на 10% более медленная реализация, как будто скорость уже не будет проблемой Python.
я полагаю, что выпуск python3 снижает репутацию Python, а не улучшает его. Прямо сейчас они вернулись в запуске к своему языку, когда он сводится к поддержке библиотеки.
Не необходимость сделать столько же..
Не необходимость волноваться об использовании unicode()
или u""
.
Не необходимость искать, хотя документы urllib
urllib2
и httplib
для нахождения, где это функционирует, я должен, чтобы закодировать файл и загрузить его через запрос POST
Не необходимость волноваться о том, поймает ли except TypeError, something:
TypeError
и something
, или TypeError
в 'что-то..
И с другой стороны, имея необходимость посмотреть на документы снова! Я знаю Python достаточно хорошо теперь, я могу сделать большую часть материала, не обращаясь к pydoc, но каждый раз, когда я делаю, я обнаруживаю некоторый другой полезный модуль или функцию.
Оператор печати. <sniff>
я начинаю уже пропускать его.
На самом деле, перед ровным движением к Python 2.6, мы производим чистку print
в пользу logging.debug
. Это должно только выйти из привычки к использованию print
небрежно для отладки, поддержки и разработки.
, Что остается, некоторые программы, которые на самом деле производят материал на stdout. Для тех мы можем представить 2.6/3.0 совместимую функцию "печати" в одной из наших библиотек.
Примерно все они, поскольку я беру релиз Python 3 как мотивация для изучения языка.
Понимания словаря являются не обязательно важнейшими, но они очень хороши.
, В то время как {k: v for k, v in list}
дольше, чем dict(list)
, это более гибко и self-explanitory.
Unicode (utf-8) действительно важен для людей, живущих в неанглоязычных странах.
мне не нравилось указывать кодирование в начале файла, потому что я всегда забываю. Обычно мой текст совместим с ASCII, потому что я использую UTF-8, таким образом, он работает без спецификации кодирования. Но Если я написал свое имя (с диакритическим знаком) или в‚ ¬ знак, оно повреждается... Я закончил тем, что писал unicode символы с их \uxxxx представлением, но это довольно загадочно!
Одной из самых недооцениваемых функций Python 3 является введение Абстрактных базовых классов. Это - что-то, что не коренным образом изменит Python, программирующий немедленно, но представляет интересный сдвиг от свободной утки, вводящей подход в направление лучше определенных интерфейсов.
[еще 112] информация может быть найдена в PEP 3119.