带有模数/百分号的字符串格式

时间:2016-04-06 07:44:40

标签: python python-2.7 string-formatting modulus

在调用

时使用模数函数的字符串格式化是否会发生某些事情

StringOperand % TupleOperand

StringOperand % DictionaryOperand

或者它只是字符串格式化函数的任意使用%?

我猜测字符串格式化操作符不是对模块化算术的调用,如下所示:

tuple = (1,2,3)
print '%d %d %d'%tuple

打印:1 2 3,但

print '%d %d %d %d'%tuple

返回TypeError:格式为str

的args不够

1 个答案:

答案 0 :(得分:3)

这是operator overloading。您所谈论的是语言内置,但您可以自己重载方法。例如,+方法在python中装饰的重载__add__运算符:

class YourMath(object):
    def __init__(self, param):
        self.param = param

    def __add__(self, x):
        return int(str(self.param) + str(x.param)) # concatenation 


x = YourMath(5)
y = YourMath(4)

+将连接而不是总结。 在这种情况下,x+y的结果为54