クラスに関数を実装すると、Python は内部的に "==" をオーバーロードし__cmp__
ますか? C++ でどのように行うのですか?
ちょっと興味があるんだけど。私はpythonが初めてです。:)
Python コードで使用される asの意味は==
、 を定義すると変わります__cmp__
。この特定の意味で、Python レベルの "==-operator" は、 の定義によって変更されます__cmp__
(これは、 も定義していない場合にのみ当てはまることに注意してください__eq__
)。
ただし、operator==
C++ レベルの は、次の 2 つの理由から、この影響を受けません。
__eq__
はい、、、、 および
( doc__ne__
__lt__
)
とともに__le__
__gt__
__ge__
何に対して?それがためのもの__cmp__
です。
しばらく非推奨でしたが、3 で完全になくなりました。代わりに__eq__
and friendsを使用する必要があります。
はい、他の多くの演算子やメソッドでも同様です。Python docsに完全なリストがあります。