[Python-Dev] Subtle difference between f-strings and str.format()

Serhiy Storchaka storchaka at gmail.com
Wed Mar 28 15:12:06 EDT 2018


28.03.18 22:05, Paul Moore пише
> I can't imagine (non-contrived) code where the fact that a is
> formatted before b is evaluated would matter, so I'm fine with option
> 3.

If formatting a and evaluating b both raise exceptions, the resulting 
exception depends on the order.

    $ ./python -bb
     >>> a = b'bytes'
     >>> '{}{}'.format(a, b)
    Traceback (most recent call last):
       File "<stdin>", line 1, in <module>
    NameError: name 'b' is not defined
     >>> f'{a}{b}'
    Traceback (most recent call last):
       File "<stdin>", line 1, in <module>
    BytesWarning: str() on a bytes instance


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20180328/38d207ca/attachment.html>


More information about the Python-Dev mailing list