{} 和格式在此命令 python 中有什么作用?
what does {} and format do in this command python?
你好,我正在阅读源代码,它有一行:
fn = 'total-listmix-{}-{}.xml'.format(opt.os, opt.compiler)
exept Exception as e:
raise Exception('error merging coverage: {}'.format(e))
我认为 {}
的意思是 dict
但我不明白这里的 dict
是什么意思? dict
是取自 format
吗?
{}
是替换字段,而不是 dict
。 Python Documentation:
中提到了这一点
Format strings contain “replacement fields” surrounded by curly braces {}
. Anything that is not contained in braces is considered literal text, which is copied unchanged to the output. If you need to include a brace character in the literal text, it can be escaped by doubling: {{
and }}
.
一个简单的例子是:
name = "Tom"
print("Hello, {}".format(name)) # prints "Hello, Tom"
这里还有一些来自 Python Documentation 的例子:
"First, thou shalt count to {0}" # References first positional argument
"Bring me a {}" # Implicitly references the first positional argument
"From {} to {}" # Same as "From {0} to {1}"
"My quest is {name}" # References keyword argument 'name'
"Weight in tons {0.weight}" # 'weight' attribute of first positional arg
"Units destroyed: {players[0]}" # First element of keyword argument 'players'.
这是替换字段的语法:
replacement_field ::= "{" [field_name] ["!" conversion] [":" format_spec] "}"
field_name ::= arg_name ("." attribute_name | "[" element_index "]")*
arg_name ::= [identifier | digit+]
attribute_name ::= identifier
element_index ::= digit+ | index_string
index_string ::= <any source character except "]"> +
conversion ::= "r" | "s" | "a"
format_spec ::= <described in the next section>
你好,我正在阅读源代码,它有一行:
fn = 'total-listmix-{}-{}.xml'.format(opt.os, opt.compiler)
exept Exception as e:
raise Exception('error merging coverage: {}'.format(e))
我认为 {}
的意思是 dict
但我不明白这里的 dict
是什么意思? dict
是取自 format
吗?
{}
是替换字段,而不是 dict
。 Python Documentation:
Format strings contain “replacement fields” surrounded by curly braces
{}
. Anything that is not contained in braces is considered literal text, which is copied unchanged to the output. If you need to include a brace character in the literal text, it can be escaped by doubling:{{
and}}
.
一个简单的例子是:
name = "Tom"
print("Hello, {}".format(name)) # prints "Hello, Tom"
这里还有一些来自 Python Documentation 的例子:
"First, thou shalt count to {0}" # References first positional argument
"Bring me a {}" # Implicitly references the first positional argument
"From {} to {}" # Same as "From {0} to {1}"
"My quest is {name}" # References keyword argument 'name'
"Weight in tons {0.weight}" # 'weight' attribute of first positional arg
"Units destroyed: {players[0]}" # First element of keyword argument 'players'.
这是替换字段的语法:
replacement_field ::= "{" [field_name] ["!" conversion] [":" format_spec] "}"
field_name ::= arg_name ("." attribute_name | "[" element_index "]")*
arg_name ::= [identifier | digit+]
attribute_name ::= identifier
element_index ::= digit+ | index_string
index_string ::= <any source character except "]"> +
conversion ::= "r" | "s" | "a"
format_spec ::= <described in the next section>