忘记过滤locals()
!您为格式化字符串提供的字典允许包含未使用的键:
>>> name = 'foo' >>> zip = 123 >>> unused = 'whoops!' >>> locals() {'name': 'foo', 'zip': 123, ... 'unused': 'whoops!', ...} >>> '%(name)s %(zip)i' % locals() 'foo 123'
使用Python 3.6中的新f字符串功能,locals()
不再需要使用:
>>> name = 'foo' >>> zip = 123 >>> unused = 'whoops!' >>> f'{zip: >5} {name.upper()}' ' 123 FOO'