为什么str在Python中没有__radd__方法?

Jua*_*nti 3 python implementation

str还有其他方法,如__rmod __,__ rsub __或__rmul__

int确实有一个__radd__方法

很奇怪,我想知道为什么.

示例radd beeing在第一个术语HAS添加方法时调用:

>>> class STR(str):
...     def __radd__(self, other):
...             print "jeje"
...             return other.__add__(self)
... 
>>> 'aaaaa' + STR('bbbbb')
jeje
'aaaaabbbbb'
Run Code Online (Sandbox Code Playgroud)

Sin*_*ion 5

__radd__当第一个添加项没有实现时使用__add__.在这种情况下int,加法由其数学定义很好地定义,因此int试图将另一个术语强制转换为数字.

因为str,没有这样明确定义的含义,并且python的开发人员已经决定没有明显需要的东西+"一个字符串".