Except I like the mini-language of f-strings much better than format()’s. And there is a performance difference between f-strings and format().
> On 24 Jun 2021, at 19:03, Luciano Ramalho <luci...@ramalho.org> wrote: > > I don't think that would be a good idea since we already have > .format() which covers that use case and is more flexible than > f-strings (it supports positional arguments, as well as *args and > **kwargs). > > I think keeping f-strings simple is a better idea. > > Best, > > Luciano > > On Thu, Jun 24, 2021 at 1:30 PM Eric Nieuwland <eric.nieuwl...@gmail.com> > wrote: >> >> In a recent discussion with a colleague we wondered if it would be possible >> to postpone the evaluation of an f-string so we could use it like a regular >> string and .format() or ‘%’. >> >> I found >> https://stackoverflow.com/questions/42497625/how-to-postpone-defer-the-evaluation-of-f-strings >> and tweaked it a bit to: >> >> import inspect >> >> class DelayedFString(str): >> def __str__(self): >> vars = inspect.currentframe().f_back.f_globals.copy() >> vars.update(inspect.currentframe().f_back.f_locals) >> return self.format(**vars) >> >> delayed_fstring = DelayedFString("The current name is {name}") >> >> # use it inside a function to demonstrate it gets the scoping right >> def new_scope(): >> names = ["foo", "bar"] >> for name in names: >> print(delayed_fstring) >> >> new_scope() >> >> >> While this does what it should it is very slow. >> So I wondered whether it would be an idea to introduce d-strings (delayed >> f-strings) and make f-strings syntactic sugar for >> >> f"The current name is {name}" = str(d"The current name is {name}") >> >> >> And perhaps access to the variables and conversions specified in the >> d-string. >> >> _______________________________________________ >> 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/GT5DNA7RKRLFWE3V42OTWB7X5ER7KNSL/ >> Code of Conduct: http://python.org/psf/codeofconduct/ > > > > -- > Luciano Ramalho > | Author of Fluent Python (O'Reilly, 2015) > | http://shop.oreilly.com/product/0636920032519.do > | Technical Principal at ThoughtWorks > | Twitter: @ramalhoorg _______________________________________________ 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/YJQDXGTFX7G2P6OLYT3QF3IFN7Z65FSG/ Code of Conduct: http://python.org/psf/codeofconduct/