mirror of
https://github.com/python/cpython.git
synced 2025-09-27 02:39:58 +00:00
bpo-33702: Add some missing links in production lists and do a little polish (GH-7259)
This commit is contained in:
parent
b6bb77c2b8
commit
caccca78e4
3 changed files with 25 additions and 25 deletions
|
@ -91,7 +91,7 @@ The :keyword:`if` statement is used for conditional execution:
|
||||||
|
|
||||||
.. productionlist::
|
.. productionlist::
|
||||||
if_stmt: "if" `expression` ":" `suite`
|
if_stmt: "if" `expression` ":" `suite`
|
||||||
: ( "elif" `expression` ":" `suite` )*
|
: ("elif" `expression` ":" `suite`)*
|
||||||
: ["else" ":" `suite`]
|
: ["else" ":" `suite`]
|
||||||
|
|
||||||
It selects exactly one of the suites by evaluating the expressions one by one
|
It selects exactly one of the suites by evaluating the expressions one by one
|
||||||
|
@ -235,7 +235,7 @@ The :keyword:`try` statement specifies exception handlers and/or cleanup code
|
||||||
for a group of statements:
|
for a group of statements:
|
||||||
|
|
||||||
.. productionlist::
|
.. productionlist::
|
||||||
try_stmt: try1_stmt | try2_stmt
|
try_stmt: `try1_stmt` | `try2_stmt`
|
||||||
try1_stmt: "try" ":" `suite`
|
try1_stmt: "try" ":" `suite`
|
||||||
: ("except" [`expression` ["as" `identifier`]] ":" `suite`)+
|
: ("except" [`expression` ["as" `identifier`]] ":" `suite`)+
|
||||||
: ["else" ":" `suite`]
|
: ["else" ":" `suite`]
|
||||||
|
@ -384,7 +384,7 @@ This allows common :keyword:`try`...\ :keyword:`except`...\ :keyword:`finally`
|
||||||
usage patterns to be encapsulated for convenient reuse.
|
usage patterns to be encapsulated for convenient reuse.
|
||||||
|
|
||||||
.. productionlist::
|
.. productionlist::
|
||||||
with_stmt: "with" with_item ("," with_item)* ":" `suite`
|
with_stmt: "with" `with_item` ("," `with_item`)* ":" `suite`
|
||||||
with_item: `expression` ["as" `target`]
|
with_item: `expression` ["as" `target`]
|
||||||
|
|
||||||
The execution of the :keyword:`with` statement with one "item" proceeds as follows:
|
The execution of the :keyword:`with` statement with one "item" proceeds as follows:
|
||||||
|
@ -468,14 +468,15 @@ A function definition defines a user-defined function object (see section
|
||||||
:ref:`types`):
|
:ref:`types`):
|
||||||
|
|
||||||
.. productionlist::
|
.. productionlist::
|
||||||
funcdef: [`decorators`] "def" `funcname` "(" [`parameter_list`] ")" ["->" `expression`] ":" `suite`
|
funcdef: [`decorators`] "def" `funcname` "(" [`parameter_list`] ")"
|
||||||
|
: ["->" `expression`] ":" `suite`
|
||||||
decorators: `decorator`+
|
decorators: `decorator`+
|
||||||
decorator: "@" `dotted_name` ["(" [`argument_list` [","]] ")"] NEWLINE
|
decorator: "@" `dotted_name` ["(" [`argument_list` [","]] ")"] NEWLINE
|
||||||
dotted_name: `identifier` ("." `identifier`)*
|
dotted_name: `identifier` ("." `identifier`)*
|
||||||
parameter_list: `defparameter` ("," `defparameter`)* ["," [`parameter_list_starargs`]]
|
parameter_list: `defparameter` ("," `defparameter`)* ["," [`parameter_list_starargs`]]
|
||||||
: | `parameter_list_starargs`
|
: | `parameter_list_starargs`
|
||||||
parameter_list_starargs: "*" [`parameter`] ("," `defparameter`)* ["," ["**" `parameter` [","]]]
|
parameter_list_starargs: "*" [`parameter`] ("," `defparameter`)* ["," ["**" `parameter` [","]]]
|
||||||
: | "**" `parameter` [","]
|
: | "**" `parameter` [","]
|
||||||
parameter: `identifier` [":" `expression`]
|
parameter: `identifier` [":" `expression`]
|
||||||
defparameter: `parameter` ["=" `expression`]
|
defparameter: `parameter` ["=" `expression`]
|
||||||
funcname: `identifier`
|
funcname: `identifier`
|
||||||
|
@ -698,7 +699,8 @@ Coroutine function definition
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
.. productionlist::
|
.. productionlist::
|
||||||
async_funcdef: [`decorators`] "async" "def" `funcname` "(" [`parameter_list`] ")" ["->" `expression`] ":" `suite`
|
async_funcdef: [`decorators`] "async" "def" `funcname` "(" [`parameter_list`] ")"
|
||||||
|
: ["->" `expression`] ":" `suite`
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
keyword: async
|
keyword: async
|
||||||
|
|
|
@ -1055,7 +1055,7 @@ The power operator binds more tightly than unary operators on its left; it binds
|
||||||
less tightly than unary operators on its right. The syntax is:
|
less tightly than unary operators on its right. The syntax is:
|
||||||
|
|
||||||
.. productionlist::
|
.. productionlist::
|
||||||
power: ( `await_expr` | `primary` ) ["**" `u_expr`]
|
power: (`await_expr` | `primary`) ["**" `u_expr`]
|
||||||
|
|
||||||
Thus, in an unparenthesized sequence of power and unary operators, the operators
|
Thus, in an unparenthesized sequence of power and unary operators, the operators
|
||||||
are evaluated from right to left (this does not constrain the evaluation order
|
are evaluated from right to left (this does not constrain the evaluation order
|
||||||
|
@ -1127,7 +1127,7 @@ operators and one for additive operators:
|
||||||
|
|
||||||
.. productionlist::
|
.. productionlist::
|
||||||
m_expr: `u_expr` | `m_expr` "*" `u_expr` | `m_expr` "@" `m_expr` |
|
m_expr: `u_expr` | `m_expr` "*" `u_expr` | `m_expr` "@" `m_expr` |
|
||||||
: `m_expr` "//" `u_expr`| `m_expr` "/" `u_expr` |
|
: `m_expr` "//" `u_expr` | `m_expr` "/" `u_expr` |
|
||||||
: `m_expr` "%" `u_expr`
|
: `m_expr` "%" `u_expr`
|
||||||
a_expr: `m_expr` | `a_expr` "+" `m_expr` | `a_expr` "-" `m_expr`
|
a_expr: `m_expr` | `a_expr` "+" `m_expr` | `a_expr` "-" `m_expr`
|
||||||
|
|
||||||
|
@ -1207,7 +1207,7 @@ Shifting operations
|
||||||
The shifting operations have lower priority than the arithmetic operations:
|
The shifting operations have lower priority than the arithmetic operations:
|
||||||
|
|
||||||
.. productionlist::
|
.. productionlist::
|
||||||
shift_expr: `a_expr` | `shift_expr` ( "<<" | ">>" ) `a_expr`
|
shift_expr: `a_expr` | `shift_expr` ("<<" | ">>") `a_expr`
|
||||||
|
|
||||||
These operators accept integers as arguments. They shift the first argument to
|
These operators accept integers as arguments. They shift the first argument to
|
||||||
the left or right by the number of bits given by the second argument.
|
the left or right by the number of bits given by the second argument.
|
||||||
|
@ -1267,7 +1267,7 @@ C, expressions like ``a < b < c`` have the interpretation that is conventional
|
||||||
in mathematics:
|
in mathematics:
|
||||||
|
|
||||||
.. productionlist::
|
.. productionlist::
|
||||||
comparison: `or_expr` ( `comp_operator` `or_expr` )*
|
comparison: `or_expr` (`comp_operator` `or_expr`)*
|
||||||
comp_operator: "<" | ">" | "==" | ">=" | "<=" | "!="
|
comp_operator: "<" | ">" | "==" | ">=" | "<=" | "!="
|
||||||
: | "is" ["not"] | ["not"] "in"
|
: | "is" ["not"] | ["not"] "in"
|
||||||
|
|
||||||
|
@ -1631,9 +1631,9 @@ Expression lists
|
||||||
.. index:: pair: expression; list
|
.. index:: pair: expression; list
|
||||||
|
|
||||||
.. productionlist::
|
.. productionlist::
|
||||||
expression_list: `expression` ( "," `expression` )* [","]
|
expression_list: `expression` ("," `expression`)* [","]
|
||||||
starred_list: `starred_item` ( "," `starred_item` )* [","]
|
starred_list: `starred_item` ("," `starred_item`)* [","]
|
||||||
starred_expression: `expression` | ( `starred_item` "," )* [`starred_item`]
|
starred_expression: `expression` | (`starred_item` ",")* [`starred_item`]
|
||||||
starred_item: `expression` | "*" `or_expr`
|
starred_item: `expression` | "*" `or_expr`
|
||||||
|
|
||||||
.. index:: object: tuple
|
.. index:: object: tuple
|
||||||
|
|
|
@ -707,15 +707,14 @@ The :keyword:`import` statement
|
||||||
keyword: from
|
keyword: from
|
||||||
|
|
||||||
.. productionlist::
|
.. productionlist::
|
||||||
import_stmt: "import" `module` ["as" `name`] ( "," `module` ["as" `name`] )*
|
import_stmt: "import" `module` ["as" `identifier`] ("," `module` ["as" `identifier`])*
|
||||||
: | "from" `relative_module` "import" `identifier` ["as" `name`]
|
: | "from" `relative_module` "import" `identifier` ["as" `identifier`]
|
||||||
: ( "," `identifier` ["as" `name`] )*
|
: ("," `identifier` ["as" `identifier`])*
|
||||||
: | "from" `relative_module` "import" "(" `identifier` ["as" `name`]
|
: | "from" `relative_module` "import" "(" `identifier` ["as" `identifier`]
|
||||||
: ( "," `identifier` ["as" `name`] )* [","] ")"
|
: ("," `identifier` ["as" `identifier`])* [","] ")"
|
||||||
: | "from" `module` "import" "*"
|
: | "from" `module` "import" "*"
|
||||||
module: (`identifier` ".")* `identifier`
|
module: (`identifier` ".")* `identifier`
|
||||||
relative_module: "."* `module` | "."+
|
relative_module: "."* `module` | "."+
|
||||||
name: `identifier`
|
|
||||||
|
|
||||||
The basic import statement (no :keyword:`from` clause) is executed in two
|
The basic import statement (no :keyword:`from` clause) is executed in two
|
||||||
steps:
|
steps:
|
||||||
|
@ -837,12 +836,11 @@ features on a per-module basis before the release in which the feature becomes
|
||||||
standard.
|
standard.
|
||||||
|
|
||||||
.. productionlist:: *
|
.. productionlist:: *
|
||||||
future_statement: "from" "__future__" "import" feature ["as" name]
|
future_stmt: "from" "__future__" "import" `feature` ["as" `identifier`]
|
||||||
: ("," feature ["as" name])*
|
: ("," `feature` ["as" `identifier`])*
|
||||||
: | "from" "__future__" "import" "(" feature ["as" name]
|
: | "from" "__future__" "import" "(" `feature` ["as" `identifier`]
|
||||||
: ("," feature ["as" name])* [","] ")"
|
: ("," `feature` ["as" `identifier`])* [","] ")"
|
||||||
feature: identifier
|
feature: `identifier`
|
||||||
name: identifier
|
|
||||||
|
|
||||||
A future statement must appear near the top of the module. The only lines that
|
A future statement must appear near the top of the module. The only lines that
|
||||||
can appear before a future statement are:
|
can appear before a future statement are:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue