python中f-string规范中的"NULL"是什么意思?

1 投票
1 回答
65 浏览
提问于 2025-04-14 15:40

我打开了Python 规范的第二章,关于词法分析,发现了以下内容:

format_spec       ::=  (literal_char | NULL | replacement_field)*
literal_char      ::=  <any code point except "{", "}" or NULL>

这里的NULL是什么意思呢?
在之前的地方并没有说明这个。

1 个回答

1

我没有具体的参考资料,但我觉得这里提到的是一个空字符串(虽然看起来并不是必须的)。

格式说明就是替换字段中在:后面的部分,它可以是完全空的。

>>> x = 3
>>> f'{x:}'
'3'

更新:文档在2024年3月18日进行了更新,不过我不确定这个更新什么时候会正式上线。(可以在这里查看预览:https://cpython-previews--116885.org.readthedocs.build/en/116885/reference/lexical_analysis.html#literals.)关于format_spec的新规则将会是

format_spec       ::=  (literal_char | replacement_field)*

literal_char依然存在

literal_char      ::=  <any code point except "{", "}" or NULL>

这里的NULL实际上是指空字符U+0000。有三个字符是不允许作为字面字符使用的,而U+0000就是其中之一。

撰写回答