2017-11-22 27 views
0

私は昨日、Pythonで演算子をオーバーライドすることが可能であることを知ったので、少しのグーグルグーグルで私はどのように見つけたのですか、 "="記号をオーバーロードする方法が見つかりませんでした。 __set __()がありますが、理解しているように、オブジェクト自体の属性ではなく、オブジェクトの属性の符号がオーバーロードされます。私が達成したい何オーバーロード=演算子Python

はこれです:

F = Foo(1) 
G = Foo(2) 
F = G #overloaded = 

だから、Pythonでのオブジェクトのために、「=」のオーバーロードの方法がありますか? (と呼ばれるその関数)

+0

いいえPythonで代入演算子をオーバーロードすることはできません。 https://docs.python.org/3/reference/datamodel.html#special-method-namesを参照してください – khelwood

+0

'='(代入)ではなく '=='(等価比較)をオーバーロードしますか? –

+0

場合によっては、セッターを持つ 'property'がそれを行うことができます。しかし、 "自由"変数ではないオブジェクト属性に対してのみ機能します。 'setattr()'、辞書、 '__dict__'属性... –

答えて

1

演算子をオーバーロードすることはできません=(代入)演算子。

+0

お返事ありがとうございます! – weirddan

関連する問題