给定一个使用命名占位符进行格式设置的字符串,是否可以动态检查名称是什么?
>>> var = '''{foo} {bar} {baz}'''
# How to do this?
>>> for k in var.inspect_named_placeholders():
>>> print(k)
foo
bar
baz
是的,您可以使用内置解析器:
>>> var = '''{foo} {bar} {baz}'''
>>> import string
>>> formatter = string.Formatter()
>>> formatter.parse(var)
<formatteriterator object at 0x109174750>
>>> list(formatter.parse(var))
[('', 'foo', '', None), (' ', 'bar', '', None), (' ', 'baz', '', None)]