、私がやろうとしますTypeError
があるでしょうネイティブデータ型の演算子をオーバーロードすることは可能ですか?例えば
an_int + a_string
:a_stringは 'STR' とan_intを入力している
a_string + an_int
が... 'INT' を入力するか、です型の暗黙の変換がないためです。私はintとstringの独自のサブクラスを使用していた場合、これを達成するために私のクラスで__add__()
メソッドをオーバーロードすることができると私は理解しています。
しかし、好奇心から、私は知っているしたいと思います:__add__(int,str)
と__add__(str,int)
が自動的に文字列としてそれらを連結するように、int
とstr
のクラス定義に+演算子をオーバーロードすることは可能でしょうか?
そうでなければ、プログラマがネイティブデータ型の演算子をオーバーロードしないようにすべき理由は何ですか?
http://blog.teamtreehouse.com/operator-overloading-python –
リンクいただきありがとうございます、それがどのように良い説明ですユーザー定義クラスの演算子をオーバーロードすることができます。しかし、 'str'や 'int'のようなネイティブデータ型に対しては可能かどうか疑問に思っています。 – Anton
python 2.xまたは3.x用ですか? –