8. Top-level components - Python 2.7.18 documentation 编辑
The Python interpreter can get its input from a number of sources: from a script passed to it as standard input or as program argument, typed in interactively, from a module source file, etc. This chapter gives the syntax used in these cases.
8.1. Complete Python programs
While a language specification need not prescribe how the language interpreter is invoked, it is useful to have a notion of a complete Python program. A complete Python program is executed in a minimally initialized environment: all built-in and standard modules are available, but none have been initialized, except for sys
(various system services), __builtin__
(built-in functions, exceptions and None
) and __main__
. The latter is used to provide the local and global namespace for execution of the complete program.
The syntax for a complete Python program is that for file input, described in the next section.
The interpreter may also be invoked in interactive mode; in this case, it does not read and execute a complete program but reads and executes one statement (possibly compound) at a time. The initial environment is identical to that of a complete program; each statement is executed in the namespace of __main__
.
A complete program can be passed to the interpreter in three forms: with the -c
string command line option, as a file passed as the first command line argument, or as standard input. If the file or standard input is a tty device, the interpreter enters interactive mode; otherwise, it executes the file as a complete program.
8.2. File input
All input read from non-interactive files has the same form:
file_input ::= (NEWLINE | statement
)*
This syntax is used in the following situations:
when parsing a complete Python program (from a file or from a string);
when parsing a module;
when parsing a string passed to the
exec
statement;
8.3. Interactive input
Input in interactive mode is parsed using the following grammar:
interactive_input ::= [stmt_list
] NEWLINE |compound_stmt
NEWLINE
Note that a (top-level) compound statement must be followed by a blank line in interactive mode; this is needed to help the parser detect the end of the input.
8.4. Expression input
There are two forms of expression input. Both ignore leading whitespace. The string argument to eval()
must have the following form:
eval_input ::= expression_list
NEWLINE*
The input line read by input()
must have the following form:
input_input ::= expression_list
NEWLINE
Note: to read ‘raw’ input line without interpretation, you can use the built-in function raw_input()
or the readline()
method of file objects.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论