1. ホーム
  2. python

[解決済み] Pythonにオブジェクト固有の識別子はあるか?

2023-03-01 05:12:10

質問

これは java.lang.Object.hashcode() メソッドに似ています。

自分がコントロールできないオブジェクトをセットで保存し、2つのオブジェクトが実際には同じオブジェクトである場合のみ(同じ値を含まない)、値が上書きされるようにする必要がありますね。

どのように解決するのですか?

id(x)

はあなたのためにトリックを行うでしょう。しかし、オブジェクトのセット(これは値によってオブジェクトを結合する)の何が問題なのか、私は興味があります。

あなたの特定の問題に対しては、おそらく ID のセットかラッパー オブジェクトのセットを維持するでしょう。ラッパーオブジェクトは1つの参照を含んでおり、以下の方法で比較します。 x==y <==> x.ref is y.ref .

また、Pythonのオブジェクトには hash 関数も持っていることに注目すべきです。この関数はオブジェクトをセットや辞書に入れるために必要なものです。これは時々異なるオブジェクトのために衝突することになっています。 hash の優れた実装は、その可能性を低くするように努めています。