
On Mon, Jul 20, 2015 at 11:41 AM, Steve Dower <Steve.Dower@microsoft.com> wrote:
Indexing is supported in format strings too, so f'{a[1]}' also becomes '{a[1]}'.format(a=a), but I don't think there are any other strange cases here. I would vote for f'{}' or f'{0}' to just be a SyntaxError.
Maybe I'm missing something, but it seems this could just as reasonably be '{}'.format(a[1])? Is there a reason to prefer the other form over this? On Mon, Jul 20, 2015 at 1:20 PM, Eric V. Smith <eric@trueblade.com> wrote:
So: f'api:{sys.api_version} {a} size{sys.maxsize}'
would become either: f'api:{.api_version} {} size{.maxsize}'.format(sys, a, sys) or f'api:{0.api_version} {1} size{0.maxsize}'.format(sys, a)
Or: f'api:{} {} size{}'.format(sys.api_version, a, sys.maxsize) Note that format strings don't allow variables in subscripts, so f'{a[n]}' ==> '{}'.format(a['n']) Also, the discussion has assumed that if this feature were added it necessarily must be a single character prefix. Looking at the grammar, I don't see that as a requirement as it explicitly defines multiple character sequences. A syntax like: format'a{b}c' formatted"""a{b} c""" might be more readable. There's no namespace conflict just as there is no conflict between raw string literals and a variable named r. --- Bruce Check out my new puzzle book: http://J.mp/ingToConclusions Get it free here: http://J.mp/ingToConclusionsFree (available on iOS)