私は昨日、Pythonで演算子をオーバーライドすることが可能であることを知ったので、少しのグーグルグーグルで私はどのように見つけたのですか、 "="記号をオーバーロードする方法が見つかりませんでした。 __set __()がありますが、理解しているように、オブジェクト自体の属性ではなく、オブジェクトの属性の符号がオーバーロードされます。私が達成したい何オーバーロード=演算子Python
はこれです:
F = Foo(1)
G = Foo(2)
F = G #overloaded =
だから、Pythonでのオブジェクトのために、「=」のオーバーロードの方法がありますか? (と呼ばれるその関数)
いいえPythonで代入演算子をオーバーロードすることはできません。 https://docs.python.org/3/reference/datamodel.html#special-method-namesを参照してください – khelwood
'='(代入)ではなく '=='(等価比較)をオーバーロードしますか? –
場合によっては、セッターを持つ 'property'がそれを行うことができます。しかし、 "自由"変数ではないオブジェクト属性に対してのみ機能します。 'setattr()'、辞書、 '__dict__'属性... –