0

Python から、次のように演算子をオーバーロードできます。

class X:
    def __add__(self, i):
        return i+3;
    def __radd__(self, i):
        return i+4

x = X()
print x+0  # prints 3
print 0+x  # prints 4

X を C 拡張モジュールに実装したい場合は、演算子のオーバーロードを明示的に登録する必要があります。__add__ は実行可能です:

X_type.tp_as_number.nb_add = &X_add;

しかし、__radd__ に対応するスロットはないようです。それはどこにある?

4

1 に答える 1