python文档有关于formatting strings语法的信息,但是我似乎无法找到有关如何读取定义替换字段语法的表的信息。
replacement_field ::= "{" [field_name] ["!" conversion] [":" format_spec] "}"
field_name ::= arg_name ("." attribute_name | "[" element_index "]")*
arg_name ::= [identifier | integer]
attribute_name ::= identifier
element_index ::= integer | index_string
index_string ::= <any source character except "]"> +
conversion ::= "r" | "s" | "a"
format_spec ::= <described in the next section>
format specification section中还有一个类似的表格。
我理解表格的一部分,如::=
分隔定义和定义,引号内的字符是文字,|
表示“或”,但表格的其余部分逃脱了我。
答案 0 :(得分:2)
这种格式就是所谓的Backus-Naur形式。 More information found on BNF here.基本上,BNF是一组推导规则。
定义符号:
一点点剖析这个例子让你开始:
replacement_field ::= "{" [field_name] ["!" conversion] [":" format_spec] "}"
field_name ::= arg_name ("." attribute_name | "[" element_index "]")*
replacement_field
由可选field_name
,可选conversion
和可选format_spec
组成。括号([和])表示可选参数。
如果您确实将field_name
传递给replacement_field
,则其中包含arg_name
函数,您可以在其中传递attribute_name
或 {{1 }}。注意element_index
是必需的,因为括号在引号中,因此转义为可选的BNF表单。