class Number(object):
def __init__(self):
super(Number, self).__init__()
self.data = 10
def __getattr__(self, name):
def _missing(*args, **kwargs):
method = getattr(self.data, name)
return method(args[0])
return _missing
a = Number()
b = Number()
print a.__add__(10) # this is ok!
print a + 10 # TypeError: "unsupported operand type(s) for +: 'Number' and 'int'"
print a + b # TypeError: "unsupported operand type(s) for +: 'Number' and 'Number'"
問題: 什麼是「一.__添加__(10)」和「A + 10」,我怎麼能勾運算符「+」之間的區別?蟒蛇:如何實例的方法調用轉發到它的屬性
覆蓋'__add__'方法。 – Stan 2012-07-24 10:57:51