Марк Лутц - Изучаем Python, Четвертое издание (1184811), страница 6
Текст из файла (страница 6)
В табл. П.2 перечислены изменения, которые были учтены в различных главах этого издания. Для многихособенностей, перечисленных в табл. П.2, имеются прямые замены, часть изкоторых также доступна в версии 2.6, чтобы обеспечить поддержку переходана версию 3.0.23ПредисловиеТаблица П.2. Особенности языка, удаленные в версии Python 3.0, которыебыли учтены в этой книгеУдаленная особенностьЗаменаСм. главыreload(M)imp.reload(M) (или exec)3, 22apply(f, ps, ks)f(*ps, **ks)18`X`repr(X)5X <> YX != Y5longint59999L99995D.has_key(K)K in D (или D.get(key) != None)8raw_inputinput3, 10прежняя версия inputeval(input)3xrangerange14fileopen (и классы из модуля io)9X.nextX.__next__,вызывается функцией next(X)14, 20, 29X.__getslice__Методу X.__getitem__ передается объект среза7, 29X.__setslice__Методу X.__setitem__ передается объект среза7, 29reducefunctools.reduce(или реализация цикла вручную)14, 19execfile(filename)exec(open(filename).read())3exec open(filename)exec(open(filename).read())307770o7775print x, yprint(x, y)11print >> F, x, yprint(x, y, file=F)11print x, y,print(x, y, end=’ ‘)11u’ccc’‘ccc’7, 36‘bbb’ для строк байтовb’bbb’7, 9, 36raise E, Vraise E(V)32, 33, 34except E, X:except E as X:32, 33, 34def f((a, b)):def f(x): (a, b) = x11, 18, 20file.xreadlinesfor line in file: (или X=iter(file))13, 14D.keys и др.,результат в виде спискаlist(D.keys) (представления словарей) 8, 1424ПредисловиеТаблица П.2 (продолжение)Удаленная особенностьЗаменаСм.
главыmap, range и др.,результат в виде спискаlist(map()), list(range())(встроенная функция)14map(None, ...)zip (или дополнение результатоввручную)13, 20X=D.keys(); X.sort()sorted(D) (или list(D.keys()))4, 8, 14cmp(x, y)(x > y) - (x < y)29X.__cmp__(y)__lt__, __gt__, __eq__ и т. д.29X.__nonzero__X.__bool__29X.__hex__, X.__oct__X.__index__29Различные функциисортировкиИспользуются аргументыkey=transform и reverse=True8Операции над словарями Сравнивание sorted(D.items())<, >, <=, >=(или реализация цикла вручную)8, 9types.ListTypelist (только для невстроенных типов) 9__metaclass__ = Mclass C(metaclass=M):28, 31, 39__builtin__builtins (переименован)17Tkintertkinter (переименован)18, 19, 24,29, 30sys.exc_type, exc_valuesys.exc_info()[0], [1]34, 35function.func_codefunction.__code__19, 38__getattr__ вызываетсяПереопределение методов __X__встроенными функциями в классе-обертке30, 37, 38-t, –tt ключи команднойстрокиЧередование использования символов 10,12табуляции и пробелов всегда приводит к ошибкеfrom ...
*, внутри функцииМожет использоваться толькона верхнем уровне в модулеimport mod, из модуляв том же пакетеfrom . import mod, импортирование от- 23носительно пакетаclass MyException:class MyException(Exception):34Модуль exceptionsВстроенная область видимости, справочное руководство по библиотеке34Модули thread, Queue_thread, queue (переименованы)17Модуль anydbmdbm (переименован)27Модуль cPickle_pickle (переименован,используется автоматически)92225ПредисловиеУдаленная особенностьЗаменаСм. главыos.popen2/3/4subprocess.Popen (os.popenпо-прежнему поддерживается)14Исключения на базестрокИсключения на базе классов (обязательны в версии 2.6)32, 33, 34Модуль с функциями для Методы объектов строкработы со строками7Несвязанные методы30, 31Функции (staticmethod – для вызоваотносительно экземпляра)Смешивание несовмести- Смешивание несовместимых типовмых типов в операцияхв операциях сравнения вызывает посравнения и сортировки явление ошибки5, 9В Python 3.0 имеются изменения, которые не были включены в эту таблицу,т. к.
они не относятся к кругу тем этой книги. Например, изменения в стандартной библиотеке представляют больший интерес для книг, освещающихприкладные аспекты применения языка, таких как «Программирование наPython», чем для этой книги. Хотя стандартная библиотека в значительнойстепени поддерживает прежнюю функциональность, в Python 3.0 некоторыемодули были переименованы, сгруппированы в пакеты и так далее. Болееполный список изменений, внесенных в версию 3.0, можно найти в документе«���������������������������������������������������������������������������What�����������������������������������������������������������������������’����������������������������������������������������������������������s�����������������������������������������������������������������������������������������������������������������������������������������New���������������������������������������������������������������������������������������������������������������������������������in���������������������������������������������������������������������������������������������������������������������������Python������������������������������������������������������� 3.0» (Что нового в �����������������������������������Python����������������������������� 3.0), включенном в стандартный набор справочных руководств.1При переходе с версии �����������������������������������������������������Python����������������������������������������������� 2.��������������������������������������������X�������������������������������������������на версию Python���������������������������������������������������������� 3.�����������������������X����������������������обязательно ознакомьтесь со сценарием 2to3 автоматического переноса программного кода, которыйвходит в состав дистрибутива Python������������������������������������������������������������������������������������ 3.0.
Конечно, он не гарантирует выполнение переноса любой программы, но способен преобразовать большую частьпрограммного кода, написанного для ����������������������������������������Python���������������������������������� 2.�������������������������������X,�����������������������������так, что он будет выполняться под управлением Python 3.X. К моменту написания этих строк на стадииреализации находился проект сценария 3to2 для обратного преобразованияпрограммного кода, написанного для ������������������������������������Python������������������������������ 3.���������������������������X��������������������������, так, чтобы он мог выполняться в среде Python 2.�������������������������������������������������X������������������������������������������������. Любой из этих инструментов может оказаться полезным для тех, кому приходится сопровождать программы, которые должнывыполняться под управлением обеих основных версий Python.
Подробности обэтих утилитах ищите в Интернете.О третьем изданииНовая редакция отражает последние новшества, появившиеся в самом языкеи в методиках его обучения. Помимо этого, была несколько изменена структура книги.1Аналогичную информацию (хотя это и не прямой перевод указанного документа)на русском языке можно найти на странице http://www.ibm.com/developerworks/ru/library/l-python3-1/. – Примеч. перев.26ПредисловиеИзменения в языке Python (для 3-го издания)Если говорить о версии языка, это издание описывает Python 2.5 и отражаетвсе изменения, появившиеся в языке с момента выхода второго издания книги в конце 2003 года.
(Во втором издании описывался язык ����������������Python����������2.2 и некоторые нововведения версии 2.3.) Кроме того, в этом издании обсуждаютсяизменения, которые ожидаются в версии Python 3.0. Ниже приводится списокосновных тем, касающихся языка программирования, которые вы найдетев этом издании (нумерация глав была изменена, чтобы соответствовать четвертому изданию):•• Новая условная конструкция B if A else C (глава 19)•• Оператор менеджера контекста with/as (глава 33)•• Унификация конструкции try/except/finally (глава 33)•• Синтаксис относительного импорта (глава 23)•• Выражения-генераторы (глава 20)•• Новые особенности функций-генераторов (глава 20)•• Функции-декораторы (глава 31)•• Объектный тип множества (глава 5)•• Новые встроенные функции: sorted, sum, any, all, enumerate (главы 13 и 14)•• Объектный тип десятичных чисел с фиксированной точностью представления (глава 5)•• Файлы, генераторы списков и итераторы (главы 14 и 20)•• Новые инструменты разработки: Eclipse, dustutils, unittest и doctest, расширения IDLE, Shedskin и так далее (главы 2 и 35)Менее значительные изменения в языке (такие как широко используемые значения True и False, новая функция sys.exec_info, которая возвращает подробную информацию об исключении, и отказ от строковых исключений, методыстрок и встроенные функции apply и reduce) обсуждаются на протяжении всейкниги.