クラスに関数を実装すると、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に完全なリストがあります。