2014-06-13 86 views

回答

3

這裏是一個非常蹩腳的例子...

class A(object): 

    def __init__(self, value): 
     self.value = value 

    def __add__(self, other): 
     return A(self.value + other.value) 

a = A(1) 
b = A(2) 
c = a + b 
print c.value # 3 

最終,這幾乎是如何所有方式工作,所以鉤子將是有利試着去了解它。您可以在類上定義方法,不管它返回的是操作的結果。想起來了另一種方式是:

c = a + b 

是一回事c = type(a).__add__(a, b)

這是不太整個故事 - 有一些真正有趣的(並且也是重要知道)的東西,你可以用NotImplemented__radd__等做的東西。但先把這個部分先移動到那部分之前...