On Thu, 24 Jun 2021 at 17:37, Martin (gzlist) <gzl...@googlemail.com> wrote:
>
>     >>> d = dict(a=1)
>     >>> f'{d["a"]}'
>     '1'
>     >>> str(DelayedFString('{d["a"]}'))
>     Traceback (most recent call last):
>       File "<stdin>", line 1, in <module>
>       File "<stdin>", line 5, in __str__
>     KeyError: '"a"'

And the other side of the attribute lookup:

    >>> d = dict(a=1)
    >>> str(DelayedFString('{d[a]}'))
    '1'
    >>> f'{d[a]}'
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'a' is not defined

Yes, having three different ways of doing string interpolation (not
counting other things you can import, like string.Template) is a bit
confusing.

Martin
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/A7FQUWQND56VGHCTTCFW6XDNCWP5MVNM/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to