2019年7月22日

演算子の話① NotImplemented とは?

Python のあまり有名でないと思われるビルトイン定数に NotImplemented があります。
これは演算子系の関数を呼び出した時に「戻り値」として使用されます。


簡単に NotImplemented を見る方法として、dict の __lt__() があります。
>>> ret = dict().__lt__(dict())
>>> ret
NotImplemented
>>> type(ret)
<class 'NotImplementedType'>
こちらで述べたように、dict は < 演算子に対応していません。対応していないのですが、dict.__lt__() という関数自体は存在しています。< 演算子から dict.__lt__() が呼び出され、戻り値としてビルトイン定数 NotImplemented(型は NotImplementedType)を返しているということになります。
では、ビルトイン定数 NotImplemented を返すことで、一体どのようなメリットがあるのでしょうか? 次回以降見ていきます。

0 件のコメント:

コメントを投稿