python – 嵌套的f字符串
作者:互联网
感谢David Beazley’s tweet,我最近发现新的Python 3.6 f-strings也可以嵌套:
>>> price = 478.23
>>> f"{f'${price:0.2f}':*>20s}"
'*************$478.23'
要么:
>>> x = 42
>>> f'''-{f"""*{f"+{f'.{x}.'}+"}*"""}-'''
'-*+.42.+*-'
虽然我很惊讶这是可能的,但我很遗憾这是多么实际,什么时候嵌套f字符串是有用的?这可以涵盖哪些用例?
注意:PEP本身没有提到嵌套f字符串,但有一个specific test case.
解决方法:
我不认为格式化的字符串文字允许嵌套(通过嵌套,我认为它意味着f'{f“..”}’)是仔细考虑可能的用例的结果,我更确信它只是允许嵌套命令他们符合他们的规范.
规范声明它们在括号内是support full Python expressions.它还声明格式化的字符串文字实际上只是在运行时计算的表达式(参见here和here).因此,只允许将格式化的字符串文字作为另一个格式化字符串文字内的表达式才有意义,禁止它会否定对Python表达式的完全支持.
您无法找到文档中提到的用例(并且只在测试套件中查找测试用例)这一事实是因为这可能是实现的一个很好的(副作用)效果,而不是它激励用例.
标签:python-3-6,python,python-3-x,string-formatting,f-string 来源: https://codeday.me/bug/20190926/1818539.html