[解決済み] Radd法によるクラス間加算
2022-02-28 09:33:40
質問
2つの異なるクラスがあり、片方のクラスにのみ追加を定義したいのですが、両方のクラスで
__add__
と
__radd__
は、そのクラスに対して(下の例では
ExampleClass2
. を作りたくはない。
__add__
に対して機能するメソッドです。
ExampleClass1
を追加します。
ExampleClass2
.
今のままでは無視されるだけです。また、raising errorも試してみましたが、これもうまくいきませんでした。
class ExampleClass1:
def __init__(self, data):
self.data = data
def __add__(self, other):
if isinstance(other, int):
print('other was an int')
class ExampleClass2:
def __init__(self, data):
self.data = data
def __add__(self, other):
if isinstance(other, ExampleClass1):
print("it's working")
__radd__ = __add__
a = ExampleClass1('q')
b = ExampleClass2('w')
a+b
解決方法は?
__radd__
が呼び出されるのは、左側のオブジェクトに
__add__
メソッドを呼び出すか、そのメソッドが 2 つのオブジェクトを追加する方法を知らないか (この場合は
NotImplemented
). どちらのクラスも
__add__
メソッドを返さない
NotImplemented
. したがって
__radd__
メソッドが呼び出されることはありません。
関連
-
[解決済み】ImportError: libcublas.so.9.0: 共有オブジェクトファイルを開くことができない
-
[解決済み】 raise TypeError(repr(o) + " is not JSON serializable")
-
[解決済み] NumPy:linalg.eig()とlinalg.eigh()の違いについて
-
[解決済み] Python 3 で complex を float に変換できない。
-
[解決済み] PyCharmでインタプリタを設定する。"別のSDK名を使用してください"
-
[解決済み] OpenBLAS blas_thread_init: pthread_create: リソースが一時的に利用できない
-
[解決済み] python3 UnicodeEncodeError: 'charmap' コーデックは位置 95-98 の文字をエンコードできない: 文字は <undefined> にマップされる。
-
[解決済み] Python 3をvirtualenvで使う
-
[解決済み】メソッドの型ヒントは、どのようにエンクロージャクラスの型を使用するのですか?
-
[解決済み] Python 3 のバイト列変数を通常の文字列に変換するにはどうすればよいですか?重複
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 AttributeError: 'module' オブジェクトには 'urlretrieve' という属性がありません。
-
[解決済み】 raise TypeError(repr(o) + " is not JSON serializable")
-
[解決済み] Dockerイメージの実行中にそのようなファイルやディレクトリがないエラーが発生する
-
[解決済み] TypeError: _thread.lockオブジェクトをpickleできません。
-
[解決済み] NumPy:linalg.eig()とlinalg.eigh()の違いについて
-
[解決済み] Python 3 の requests.get でデータを取得する前にページがロードされるのを待つ
-
[解決済み] PySNMP による snmpwalk
-
[解決済み] sklearnのprecision_recall_fscore_supportの出力はどのように並べられるのでしょうか?
-
[解決済み] テキストファイルに辞書を書き込む?
-
[解決済み] Python SSL証明書検証エラー