str还有其他方法,比如u rmod_uu、\uu rsub_uuu或uuu rmul_u
int确实有一个
奇怪,我想知道为什么。在
当第一项具有add方法时调用的示例radd being:
>>> class STR(str):
... def __radd__(self, other):
... print "jeje"
... return other.__add__(self)
...
>>> 'aaaaa' + STR('bbbbb')
jeje
'aaaaabbbbb'
Tags:
类型只定义它们使用的方法。由于可以添加到字符串中的唯一对象是其他字符串或unicode对象,因此不需要常规的
__radd__
方法。__rmul__
允许您复制字符串:我不知道为什么需要
__rmod__
,但它与格式有关。也许它简化了使用单个参数格式化的实现,如"Hello %s" % 'world'
。我不确定。与您的断言相反,str对象上没有__rsub__
。在简言之,这些方法只有在它们实际执行某些操作时才被定义。在
当加法的第一项不实现
__add__
时,使用__radd__
。在int
的情况下,加法是由其数学定义定义的,因此int试图将另一项强制为一个数。在使用
str
,没有这样定义良好的含义,python的开发人员已经决定,没有必要使用某种东西+“字符串”。在相关问题 更多 >
编程相关推荐