我有兩個類Foo
和Bar
:抑制__add__時__radd__定義
class Foo(str):
def __add__(self, other):
return 'Foo.__add__ called'
class Bar(str):
def __radd__(self, other):
return 'Bar.__radd__ called'
正如你所看到的,我已經Foo
實施__add__
和Bar
實施__radd__
。
我可以創建這些類的對象並添加它們,因爲定義了魔術方法。
f = Foo('foo')
b = Bar('bar')
然而,增加他們產生這樣的:
In [390]: f + b
Out[390]: 'Foo.__add__ called'
如何設置它,這樣Bar.__radd__
方法被調用優先於Foo.__add__
?從docs有關__rstuff__
方法
製作'Bar' Foo'的'子類。 –
@AshwiniChaudhary嘿,你知道什麼。這工作。好一個。把它變成答案? :)(關於如何工作會有所幫助的小解釋...) –