python中f-string规范中的"NULL"是什么意思?
我打开了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就是其中之一。