Python模数分配(%=)用于字符串格式化

时间:2018-12-20 16:58:16

标签: python string

Django for example使用此代码来满足ValidationError exceptions

>>> message = 'My name is %(name)s'
>>> params = {'name': 'George'}
>>> message %= params
>>> print(message):
'My name is George'

我设法在%=上找到的唯一文档是here,在这里将其称为modulus assignment operator

我真的不明白为什么它可以与旧样式格式(%)一起使用,也无法理解如何与新样式格式(str.format())一起使用。

新样式格式是否会使此代码多余?

1 个答案:

答案 0 :(得分:1)

这是str的功能(在2x和3x中)。它是message = message % params的简写形式,带有作为格式字符串的消息。您可以阅读类似*= aka __imul__ here之类的类似运算符。

string / modulus运算符用于“旧python格式设置”,您可以在此处与new and old的历史一起阅读。