Spec-Zone.ru › Python 3.10

Основные компоненты

Интерпретатор Python может получать входные данные из различных источников: из скрипта, переданного в качестве стандартного ввода или аргумента программы, из вводимых данных интерактивно, из исходного файла модуля и т. д. В этой главе представлен синтаксис, используемый в этих случаях.

9.1. Полные программы Python

Хотя спецификация языка не должна предписывать, как вызывается интерпретатор языка, полезно иметь понятие полной программы Python. Полная программа Python выполняется в минимально инициализированной среде: все встроенные и стандартные модули доступны, но ни один из них не был инициализирован, за исключением sys (различные системные службы), builtins (встроенные функции, исключения и None) и __main__. Последний используется для предоставления локального и глобального пространства имен для выполнения полной программы.

Синтаксис полной программы Python соответствует синтаксису для входных данных из файла, описанному в следующем разделе.

Интерпретатор также может быть вызван в интерактивном режиме; в этом случае он не читает и не выполняет полную программу, а читает и выполняет одну инструкцию (возможно, составную) за раз. Начальная среда идентична среде полной программы; каждая инструкция выполняется в пространстве имен __main__.

Полную программу можно передать интерпретатору в трех форматах: с помощью команды -c строка, в качестве файла, переданного в качестве первого аргумента командной строки, или в качестве стандартного ввода. Если файл или стандартный ввод являются устройством tty, интерпретатор переходит в интерактивный режим; в противном случае он выполняет файл как полную программу.

9.2. Ввод из файла

Все входные данные, считанные из файлов, не являющихся интерактивными, имеют одинаковый формат:

file_input ::=  (NEWLINE | statement)*

Этот синтаксис используется в следующих ситуациях:

  • при разборе полной программы Python (из файла или строки);
  • при разборе модуля;
  • при разборе строки, переданной функции exec();

9.3. Интерактивный ввод

Ввод в интерактивном режиме анализируется с использованием следующей грамматики:

interactive_input ::=  [stmt_list] NEWLINE | compound_stmt NEWLINE

Обратите внимание, что составная инструкция (на верхнем уровне) должна следовать за пустой строкой в интерактивном режиме; это необходимо для того, чтобы анализатор мог определить конец входных данных.

9.4. Ввод выражений

Для ввода выражений используется eval(). Он игнорирует ведущие пробелы. Строковый аргумент функции eval() должен иметь следующий вид:

eval_input ::=  expression_list NEWLINE*

© 2001–2023 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.10/reference/toplevel_components.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API