我无法理解如何在我的班级中正确设置contains方法。我知道当您调用它时它会自动使用运算符“in”,我只是不认为我了解如何正确设置它。
我必须用它来查看 anotherCircle 是否包含在特定的圆圈中(都是来自用户的输入)。教授让我们为此做两种不同类型的方法。
第一个我没有问题并且或多或少地理解它在做什么,它如下:
def contains(self, circle2d):
dist = math.sqrt((circle2d._x - self._x)**2 + (circle2d._y - self._y)**2) #Distance of second circle's coords from the first circle's coords
if dist + circle2d._radius <= self._radius:
return True
然而,应该做同样事情的下一个方法使用contains方法,以便我们可以在主函数中调用它。我只有这个:
def __contains__(self, anotherCircle):
if anotherCircle in self:
return True
尝试运行此程序时出现多个错误。我想我错过了自我,但我不确定是什么?有人可以尝试向我解释在编写这样的contains方法时到底需要做什么吗?