Документация Python неофициальный перевод

toplevel_components.md

64 строк · 6.0 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/2.7/reference/toplevel_components.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 8. Компоненты верхнего уровня89Интерпретатор Python может получать данные из нескольких источников: из скрипта, переданного ему через стандартный ввод или как аргумент программы, при интерактивном вводе, из файла исходного кода модуля и т.д. В этой главе описывается синтаксис, используемый в этих случаях.1011## 8.1. Полные программы на Python1213Хотя спецификация языка не должна предписывать, как вызывается интерпретатор языка, полезно иметь понятие полной программы Python. Полная программа Python выполняется в минимально инициализированном окружении: все встроенные и стандартные модули доступны, но ни один не инициализирован, за исключением [`sys`](https://python-all.ru/2.7/library/sys.html#module-sys) (различные системные службы), [`__builtin__`](https://python-all.ru/2.7/library/__builtin__.html#module-__builtin__) (встроенные функции, исключения и `None`) и [`__main__`](https://python-all.ru/2.7/library/__main__.html#module-__main__). Последний используется для предоставления локального и глобального пространства имён для выполнения полной программы.1415Синтаксис полной программы на Python – это синтаксис ввода из файла, описанный в следующем разделе.1617Интерпретатор также может быть вызван в интерактивном режиме; в этом случае он не читает и не выполняет полную программу, а читает и выполняет по одному оператору (возможно, составному) за раз. Начальное окружение идентично окружению полной программы; каждый оператор выполняется в пространстве имён [`__main__`](https://python-all.ru/2.7/library/__main__.html#module-__main__).1819Полная программа может быть передана интерпретатору в трёх формах: с опцией командной строки [`-c`](https://python-all.ru/2.7/using/cmdline.html#cmdoption-c) *строка*, в виде файла, переданного в качестве первого аргумента командной строки, или через стандартный ввод. Если файл или стандартный ввод являются tty-устройством, интерпретатор переходит в интерактивный режим; в противном случае он выполняет файл как полную программу.2021## 8.2. Ввод из файла2223Весь ввод, читаемый из неинтерактивных файлов, имеет одну и ту же форму:2425```2627file_input ::=  (NEWLINE | statement)*28```2930Этот синтаксис используется в следующих ситуациях:3132- при разборе полной программы на Python (из файла или из строки);33- при разборе модуля;34- при разборе строки, переданной в инструкцию [`exec`](https://python-all.ru/2.7/reference/simple_stmts.html#exec);3536## 8.3. Интерактивный ввод3738Ввод в интерактивном режиме разбирается с использованием следующей грамматики:3940```4142interactive_input ::=  [stmt_list] NEWLINE | compound_stmt NEWLINE43```4445Обратите внимание, что в интерактивном режиме за (составным) оператором верхнего уровня должна следовать пустая строка; это необходимо, чтобы помочь синтаксическому анализатору обнаружить конец ввода.4647## 8.4. Ввод выражений4849Существует две формы ввода выражений. Обе игнорируют начальные пробелы. Строковый аргумент для [`eval()`](https://python-all.ru/2.7/library/functions.html#eval) должен иметь следующий вид:5051```5253eval_input ::=  expression_list NEWLINE*54```5556Строка ввода, читаемая [`input()`](https://python-all.ru/2.7/library/functions.html#input), должна иметь следующий вид:5758```5960input_input ::=  expression_list NEWLINE61```6263Примечание: чтобы прочитать «сырую» строку ввода без интерпретации, можно использовать встроенную функцию [`raw_input()`](https://python-all.ru/2.7/library/functions.html#raw_input) или метод [`readline()`](https://python-all.ru/2.7/library/readline.html#module-readline) файловых объектов.64