bpo-43755: Update docs to reflect that lambda is not allowed in `comp_if` since 3.9 (GH-25231)

This commit is contained in:
Saiyang Gou 2021-04-06 15:15:37 -07:00 committed by GitHub
parent 50616223d1
commit 0fdf11e8e9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 3 deletions

View File

@ -185,7 +185,7 @@ Common syntax elements for comprehensions are:
comprehension: `assignment_expression` `comp_for`
comp_for: ["async"] "for" `target_list` "in" `or_test` [`comp_iter`]
comp_iter: `comp_for` | `comp_if`
comp_if: "if" `expression_nocond` [`comp_iter`]
comp_if: "if" `or_test` [`comp_iter`]
The comprehension consists of a single expression followed by at least one
:keyword:`!for` clause and zero or more :keyword:`!for` or :keyword:`!if` clauses.
@ -1707,7 +1707,6 @@ Conditional expressions
.. productionlist:: python-grammar
conditional_expression: `or_test` ["if" `or_test` "else" `expression`]
expression: `conditional_expression` | `lambda_expr`
expression_nocond: `or_test` | `lambda_expr_nocond`
Conditional expressions (sometimes called a "ternary operator") have the lowest
priority of all Python operations.
@ -1733,7 +1732,6 @@ Lambdas
.. productionlist:: python-grammar
lambda_expr: "lambda" [`parameter_list`] ":" `expression`
lambda_expr_nocond: "lambda" [`parameter_list`] ":" `expression_nocond`
Lambda expressions (sometimes called lambda forms) are used to create anonymous
functions. The expression ``lambda parameters: expression`` yields a function

View File

@ -267,6 +267,10 @@ Other Language Changes
:func:`~operator.countOf` of the :mod:`operator` module.
(Contributed by Serhiy Storchaka in :issue:`40824`.)
* Unparenthesized lambda expressions can no longer be the expression part in an
``if`` clause in comprehensions and generator expressions. See :issue:`41848`
and :issue:`43755` for details.
New Modules
===========

View File

@ -0,0 +1,3 @@
Update documentation to reflect that unparenthesized lambda expressions can
no longer be the expression part in an ``if`` clause in comprehensions and
generator expressions since Python 3.9.