クラスでcontainsメソッドを適切に設定する方法がわかりません。呼び出すときに「in」演算子が自動的に使用されることは知っていますが、正しく設定する方法を理解していないと思います。
anotherCircle が特定の円に含まれているかどうかを確認するために使用する必要があります (両方ともユーザーからの入力)。教授は、このために 2 種類の方法を実行するように指示しました。
私が問題なく、それが何をしているのかを多かれ少なかれ理解している最初のものは、次のとおりです。
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
ただし、同じことを行うはずの次のメソッドは、main 関数内で呼び出すことができるように、 containsメソッドを使用しています。私が持っているのはこれだけです:
def __contains__(self, anotherCircle):
if anotherCircle in self:
return True
これを実行しようとすると、複数のエラーが発生します。私は自分自身に何かが欠けていると思いますが、何がわかりませんか? このようなcontainsメソッドを書いているときに、正確に何をする必要があるのか 誰かが私に説明してくれませんか?