On 8/10/2015 6:54 PM, Victor Stinner wrote:
> 
>     PEP 498:
> 
> """
> 
> 
>     Leading whitespace in expressions is skipped
>     <https://www.python.org/dev/peps/pep-0498/#id28>
> 
> Because expressions may begin with a left brace ('{'), there is a
> problem when parsing such expressions. For example:
> 
>>>> f'{{k:v for k, v in [(1, 2), (3, 4)]}}' '{k:v for k, v in [(1, 2), (3, 
>>>> 4)]}'
> 
> """
> 
> For me, this example is crazy. You should not add a special case (ignore
> spaces) just to support a corner case.
> 
> This example can easily be rewritten using a temporary variable and it
> makes the code simpler.
> 
> items={k:v for k, v in [(1, 2), (3, 4)]; f'{items}'
> 
> Seriously, a dict-comprehension inside a f-string should be considered
> as an abuse of the feature. Don't you think so?

Yes, it's absolutely an abuse and should never be written. But if the
only "cost" to allowing it is skipping leading spaces, I don't see the
harm. It sounds like you want to disallow leading spaces just to
disallow this one type of expression.

My other use case for spaces, which I've not added to the PEP yet, is
for alignment, like:

f' x={ x:15}'
f'xx={xx:15}'

Eric.
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to