我遇到了这个问题并试图找到它的解决方案,但我无法做到。 有什么帮助吗?谢谢
答案 0 :(得分: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)
1
1 这不是一个完整的故事 - 你可以用NotImplemented
和{做一些非常有趣(也很重要)的东西{1}}等等,但在继续讨论该部分之前先掌握这一部分......