shapelyと operator の使い方について質問があり==
ます。幾何学的オブジェクトの等価性をテストする関数が存在します: .equals()
. ただし==
、機能しません。
Point((0, 2)).equals(Point((0,2))
True を返します。
でも:
Point((0, 2)) == Point((0, 2))
False を返します
==
演算子を使用してPoint
、 a がリストに既に存在するかどうかを確認できるようにしたいと考えています。1 つの使用例は次のとおりです。
if Point not in list_of_points:
list_of_points.append(Point)
私が理解している限り、これは を==
返すため機能しませんFalse
。in
関数を使用する代わりの方法があることは知っていますが、次のキーワードを使用しany()
たいと思います。in
if not any(Point.equals(point) for point in list_of_points):
list_of_points.append(Point)
に実装__eq__
するのは大変な作業shapely/geometry/base.py
でしょうか? のこの単純な実装についてどう思います__eq__
か?
class BaseGeometry(object):
def __eq__(self, other):
return self.equals(other)
また
class BaseGeometry(object):
def __eq__(self, other):
return bool(self.impl['equals'](self, other))