class Point:
def __init__(self, x = 0, y = 0):
self.x = x
self.y = y
def __sub__(self, other):
x = self.x + other.x
y = self.y + other.y
return Point(x,y)
p1 = Point(3, 4)
p2 = Point(1, 2)
result = p1-p2
print(result.x, result.y) # prints (4,6)
任何人都可以解釋上述代碼是如何工作的。不能讓我的頭靠近它。 據我所知,__sub__
是Python中的運算符overloader,並攔截了p1-p2調用。但是它如何與兩個不同的課程實例一起工作呢?Python __sub__與類實例的用法
任何特定的部分? –
'p1-p2'將導致一個'p1 .__ sub __(p2)'調用...... –
這看起來像'__add __()'方法的實現,而不是'__sub __()'。至於它是如何工作的:'p1-p2'變成了'p1 .__ sub __(p2)'。 – jasonharper