2009-05-27 4 views
4

Я переношу устаревшую кодовую базу на работу с python 2.4 на python 2.6. Это делается как часть толчка, чтобы удалить тег «legacy» и создать поддерживаемую расширяемую основу для активного развития, поэтому я получаю возможность «сделать все правильно», включая рефакторинг для использования новых функций 2.6, если это приводит к более чистым, более надежным кодам. (Я уже в восторге от заявления «с» :)). Какие-нибудь хорошие подсказки для миграции? Лучшие практики, шаблоны проектирования и т. Д.? Я в основном рубиновый программист; Я изучил некоторый python 2.4 во время работы с этим кодом, но ничего не знаю о современных принципах проектирования python, поэтому не стесняйтесь предлагать то, что, по вашему мнению, очевидно.Миграция с python 2.4 на python 2.6

ответ

5

Ознакомьтесь с изменениями Python 3.0. Точка 2,6 предназначена для 3,0.

От 2,4 до 2,6 вы приобрели много чего. Это самое важное. Я делаю этот ответ wiki сообщества, чтобы другие люди могли его редактировать.

  1. Функции генератора и инструкция выхода.

  2. Более последовательное использование различных типов, таких как list и dict - их можно продлить непосредственно.

  3. from __future__ import with_statement

  4. from __future__ import print_function

  5. Исключения составляют новые классы стиля, и есть более последовательная обработка исключений. Исключения строк исключены. Попытка использовать их поднимает TypeError

2

Я думаю, вы уже нашли их, но ссылки и для других, вот списки новых функций в этих двух версиях:

Помимо выбора функции из этих документов, я предлагаю использовать возможность (если необходимо), чтобы код соответствовал стандартному стилю кода Python в PEP 8.

Есть некоторые автоматизированные инструменты, которые могут помочь вам получать право стиля Python: pep8.py реализует РЕРУ 8 проверок и pylint дает больший отчет, который также включает в себя такие вещи, как неопределенные переменные, неиспользуемый импорт и т.д. pyflakes является меньше и быстрее pylint.

+0

спасибо :) да, я уже перешедший в новом списке функций, но без толики опыта я не могу сказать, как они переводят на удар для в- бакс. Я ищу советы от людей, которые использовали как 2.4, так и 2.6, и обнаружил, какие функции сильно изменили их код. –

+0

Хорошо, я вижу - я взламываю Mercurial, и там мы недавно отказались от совместимости Python 2.3. Поэтому я в основном счастлив, когда я использую функции Python 2.4 :-) Я надеюсь, что кто-то еще сможет использовать ссылки! –