Widziałem jak przeciążenie +
i *
w Ruby, tak że my_obj + other
rozmowy my_obj.+(other).
W Pythonie, robisz to z __add__
i istnieje odpowiadający __radd__
do przeciążenia other + my_obj
. Czy naprawdę nie ma odpowiednika prawostronnego dodawania/mnożenia w Ruby, i czy to powoduje konieczność przedefiniowania +
dla każdej potencjalnej klasy other
?Istnienie prawidłowego dodawania/mnożenia w rubinie?
W skrócie: mówię, że mam obiekt X
należący do nowej klasy zdefiniowanej przeze mnie. Łatwo jest napisać kod dla X + 5
, ale wydaje się, że w celu obsługi 5 + X
musiałbym przedefiniować Fixnum.+
. Czy to prawda?
Powinienem wyjaśnić: chcę, aby 5 + X (i X + 5) zwróciło wybrany obiekt niestandardowy, a nie tylko liczbę całkowitą lub zmienną. – Peter
Definicja coerce to archiwizuje. – sepp2k