mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
PEP 308 implementation, including minor refdocs and some testcases. It
breaks the parser module, because it adds the if/else construct as well as two new grammar rules for backward compatibility. If no one else fixes parsermodule, I guess I'll go ahead and fix it later this week. The TeX code was checked with texcheck.py, but not rendered. There is actually a slight incompatibility: >>> (x for x in lambda:0) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: iteration over non-sequence changes into >>> (x for x in lambda: 0) File "<stdin>", line 1 (x for x in lambda: 0) ^ SyntaxError: invalid syntax Since there's no way the former version can be useful, it's probably a bugfix ;)
This commit is contained in:
parent
d3a5f53a27
commit
dca3b9c797
11 changed files with 878 additions and 642 deletions
|
@ -155,8 +155,7 @@ square brackets:
|
|||
|
||||
\begin{productionlist}
|
||||
\production{test}
|
||||
{\token{and_test} ( "or" \token{and_test} )*
|
||||
| \token{lambda_form}}
|
||||
{\token{or_test} | \token{lambda_form}}
|
||||
\production{testlist}
|
||||
{\token{test} ( "," \token{test} )* [ "," ]}
|
||||
\production{list_display}
|
||||
|
@ -1017,7 +1016,8 @@ Boolean operations have the lowest priority of all Python operations:
|
|||
|
||||
\begin{productionlist}
|
||||
\production{expression}
|
||||
{\token{or_test} | \token{lambda_form}}
|
||||
{\token{or_test} [\token{if} \token{or_test} \token{else}
|
||||
\token{test}] | \token{lambda_form}}
|
||||
\production{or_test}
|
||||
{\token{and_test} | \token{or_test} "or" \token{and_test}}
|
||||
\production{and_test}
|
||||
|
@ -1036,6 +1036,11 @@ The operator \keyword{not} yields \code{True} if its argument is false,
|
|||
\code{False} otherwise.
|
||||
\opindex{not}
|
||||
|
||||
The expression \code{\var{x} if \var{C} else \var{y}} first evaluates
|
||||
\var{C} (\emph{not} \var{x}); if \var{C} is true, \var{x} is evaluated and
|
||||
its value is returned; otherwise, \var{y} is evaluated and its value is
|
||||
returned.
|
||||
|
||||
The expression \code{\var{x} and \var{y}} first evaluates \var{x}; if
|
||||
\var{x} is false, its value is returned; otherwise, \var{y} is
|
||||
evaluated and the resulting value is returned.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue