Python/Справочник по языку Python 2.6
Документация Python Эта статья — часть Документации по языку Python |
Исходный текст | http://docs.python.org/reference/index.html |
Релиз | 2.6 |
Версия от | 07 августа 2009 |
Данное справочное руководство описывает синтаксис и "семантическое ядро" языка. Это сжатое, но, по возможности, точное и полное описание. Семантика встроенных типов объектов, не являющихся основными, а, также, стандартных функций и модулей описана в Справочнике по библиотеке. Неформальное введение в язык изложено в Учебнике. Для C и C++ программистов существует ещё 2 руководства: "Расширение и встройка", описывающее в целом, как писать модули расширений для Python, и "Python/C API", детально раскрывающие доступные интерфейсы для C/C++ программистов.
Введение
правитьЭто справочное руководство описывает язык программирования Python, но не является учебником по нему.
Стараясь быть как можно более точным, я сделал выбор в пользу английского языка, вместо формализованной спецификации, для всего, кроме синтаксиса и лексического анализа. Планируется, что такой подход сделает документ более понятным для среднего читателя и, в то же время, избавит от двусмысленностей. Таким образом, если представить, что вы прилетели с Марса, и попытались бы сделать свою реализацию Python, используя только этот документ, то о многих вещах вы должны будете догадаться сами, и, скорее всего, в итоге получится по-существу другой язык. С другой стороны, если вы используете Python и задались вопросом о точных правилах какой-либо части языка, то вы, определённо, найдёте их здесь. Если же вы захотите увидеть больше формальных определений языка, может быть вам следует добровольно взять эту работу на себя, или придумать машину для клонирования :-).
Опасно добавлять слишком много деталей реализации в руководство по языку - она может измениться и разные реализации языка могут работать по-разному. С другой стороны, в настоящее время широко используется только одна реализация Python (хотя и существуют альтернативные реализации) и её особенности иногда будут отмечены, особенно там, где их применение налагает дополнительные ограничения. Поэтому, среди текста вы будете находить короткие заметки об "особенностях реализации".
Каждая реализация Python поставляется с целым набором встроенных функций и стандартных модулей. Эта тема документирована в Справочнике по библиотеке. Несколько встроенных модулей упомянуты в этом тексте, когда они оказывают значительное влияние в определении языка
Альтернативные реализации
правитьХотя наиболее широко распространённая реализация Python всего одна, существуют альтернативные реализации, которые представляют определённый интерес в различных применениях.
Известные реализации включают:
CPython
Это оригинальная и наиболее полная и поддерживаемая реализация Python, которая написана на C. Новые возможности языка обычно появляются в первую очередь здесь.
Jython
Реализация Python на Java. Эта реализация может быть использована как скриптовый язык для Java-приложений или для создания приложений на основе библиотек классов Java. Так же эта реализация используется для создания тестов для Java библиотек. За более подробной информация обращайтесь к веб-сайту Jython(англ.).
Python for .NET
Данная реализация восновном использует CPython, но управляет .NET-приложениями и делает доступными .NET-библиотеки. Создатель этой реализации Браен Ллойд (Brian Lloyd). За более подробной информация обращайтесь к домашней странице Python for .NET(англ.).
IronPython
Ещё один Python для .NET. В отличие от Python.NET, это полноценная реализация Python, которая генерирует байт-код и компилирует код Python непосредственно в .NET assemblies. Создатель этой реализации - Джим Хаганин (Jim Hugunin), также является автором Jython. За более подробной информацией обращайтесь к домашней странице IronPython(англ.).
PyPy
Это - реализация Python, написанная на самом Python. Даже интерпретатор байт-кода написан на Python,который, в свою очередь, основан на CPython. Одной из целей проекта является поощрение проведения экспериментов с языком, путём упрощения модифицирования интерпретатора (потому, что он написан на Python). Дополнительная информация доступна на домашней странице проекта PyPy(англ.).
Каждая из этих реализаций каким-либо образом отличается от языка, документированного в этом руководстве или вводит дополнительную специфическую информацию сверх той, что описана в стандартной документации по Python. Пожалуйста, обращайтесь к документации, специфичной для конкретной реализации, чтобы определить, что ещё нужно знать при её использовании.
Обозначения
правитьДля описания лексического анализа и синтаксиса используется модифицированная грамматическая нотация БНФ. Используется следующий стиль для определения:
name ::= lc_letter (lc_letter | "_")*
lc_letter ::= "a"..."z"
Первая говорит, что name является lc_letter следующим за последовательностью из 0 или более lc_letter и знаков нижнего подчёркивания. С другой стороны lc_letter является одним символом из ряда от 'a' до 'z'. (Вообще это правило применимо для имён, определённых в лексических и грамматических правилах в этом документе.)
Каждое правило начинается с имени (которое определяется правилом) и знака ::=. Вертикальная черта (|) используется для отделения альтернатив; это наименьший связывающий оператор в этой нотации. Звёздочка (*) означает 0 или более повторений предыдущего выражения; подобным образом плюс (+) означает одно или более повторений ...
Лексический анализ
правитьЛинейная структура
правитьДругие лексемы
правитьИдентификаторы и ключевые слова
правитьand elif if print as else import raise assert except in return break exec is try class finally lambda while continue for not with def from or yield del global pass
Литералы
правитьОператоры
правитьРазделители
правитьМодель данных
правитьОбъекты, значения и типы
правитьИерархия встроенных типов
правитьКлассические классы и классы в новом стиле
правитьИмена специальных типов
правитьМодель исполнения
правитьИменование и связывание
правитьИсключения
правитьВыражения
правитьАрифметические преобразования
правитьАтомы
правитьPrimaries
править=\