gpt4 book ai didi

python - 嵌套的 f 字符串

转载 作者:IT老高 更新时间:2023-10-28 21:31:56 33 4
gpt4 key购买 nike

感谢 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 * 括号内。它还指出,格式化字符串文字 实际上只是一个表达式,它在运行时被评估(参见 herehere )。因此,只有允许格式化字符串文字作为另一个格式化字符串文字中的表达式才有意义,禁止它会否定对 Python 表达式的完全支持。

您找不到文档中提到的用例(并且只能在测试套件中找到测试用例)这一事实是因为这可能是实现的一个很好的(副作用),而不是激励用例。


其实,有两个异常(exception):不允许空表达式,lambda表达式必须用显式括号括起来。

关于python - 嵌套的 f 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41215365/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com