在Python3.4中你可以做以下事情:
class MyDict(dict):
def __missing__(self, key):
return "{%s}" % key
然后是这样的:
d = MyDict()
d['first_name'] = 'Richard'
print('I am {first_name} {last_name}'.format(**d))
打印,如预期:
I am Richard {last_name}
但这段代码在 Python3.6+ 中不起作用,返回一个KeyError
在试图获得last_name
字典中的值,是否有任何解决方法可以使该字符串格式以与 Python3.4 中相同的方式工作?
Thanks!
我用它解决了format_map https://docs.python.org/3/library/stdtypes.html#str.format_map代替format
,按照我的例子:
print('I am {first_name} {last_name}'.format_map(d))
Printed
I am Richard {last_name}
正如预期的那样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)