yield-in-for-loop (UP028)#
Derived from the pyupgrade linter.
Fix is always available.
What it does#
Checks for for
loops that can be replaced with yield from
expressions.
Why is this bad?#
If a for
loop only contains a yield
statement, it can be replaced with a
yield from
expression, which is more concise and idiomatic.
Example#
Use instead:
Fix safety#
This rule's fix is marked as unsafe, as converting a for
loop to a yield from
expression can change the behavior of the program in rare cases.
For example, if a generator is being sent values via send
, then rewriting
to a yield from
could lead to an attribute error if the underlying
generator does not implement the send
method.
In most cases, however, the fix is safe, and such a modification should have no effect on the behavior of the program.