NotImplemented 未実装マーカー
最終更新:2026-09-22
NotImplemented 未実装マーカー
NotImplemented は二項演算子メソッドによって返され、「この演算は自分では実装していないので、オペランドを入れ替えて試してほしい」ことを示す。
| カテゴリ | キーワード/文 |
|---|---|
| 種類 | キーワード/文 |
| Python バージョン | all |
📝 構文
NotImplemented
▶ 例
下のコードを編集し「実行」をクリックすると、出力パネルに結果が表示されます:
実行結果:
False
💡 関連するケース
さらに多くのケースは近日公開予定です。
❓ よくある質問
QNotImplemented と NotImplementedError の違いは何ですか?
A`NotImplemented` はシングルトンオブジェクトで、`__eq__` や `__add__` などの二項演算子メソッドから返され、「この演算はサポートしていないので、反射演算を試してください」を意味します。`NotImplementedError` は「抽象メソッドがまだ実装されていない」を意味する例外クラスです。
Q`__eq__` が NotImplemented を返すとどうなりますか?
APython はオペランドを入れ替えて、相手側の反射メソッド(例:`other.__eq__(self)`)を試します。相手も `NotImplemented` を返すと、`==` の最終結果は `False`(`!=` は `True`)になります。
Qいつ NotImplemented を返すべきですか?
A`__eq__`、`__add__`、`__lt__` などの二項演算 dunder メソッドを実装するとき、認識できない型に遭遇したら `TypeError` を投げるのではなく `return NotImplemented` を返し、Python に他のメカニズムを試させます。