タイトルは 3 つの質問と解釈できますが、実際の問題は簡単に説明できます。Linux システムでは、python 2.7.3 がインストールされており、python 3 の非互換性について警告されたいと思っています。したがって、コード スニペット ( tester.py
) は次のようになります。
#!/usr/bin/python -3
class MyClass(object):
def __eq__(self, other):
return False
このコード スニペットを実行すると (プロジェクトで使用している実際のコードではなく、問題を表示するだけだと考えられます)。
./tester.py
次の非推奨警告が表示されます。
./tester.py:3: DeprecationWarning: Overriding __eq__ blocks inheritance of __hash__ in 3.x
class MyClass(object):
私の質問: このコード スニペットを変更して警告をなくす、つまりバージョン 3 と互換性を持たせるにはどうすればよいですか? 警告などを抑制するだけでなく、等価演算子を正しい方法で実装したいと考えています。