相关疑难解决方法(0)

Python NotImplemented常量

通过浏览decimal.py,它使用NotImplemented了许多特殊方法.例如

class A(object):
    def __lt__(self, a):
        return NotImplemented

    def __add__(self, a):
        return NotImplemented
Run Code Online (Sandbox Code Playgroud)

Python的文件说:

未实现

可以由"富比较"特殊方法(__eq__(),__lt__()和朋友)返回的特殊值,以指示未针对其他类型实现比较.

它没有谈论其他特殊方法,也没有描述行为.

它似乎是一个神奇的对象,如果从其他特殊方法返回引发TypeError,并在"丰富的比较"特殊方法什么也不做.

例如

print A() < A()
Run Code Online (Sandbox Code Playgroud)

打印True,但

print A() + 1
Run Code Online (Sandbox Code Playgroud)

加注TypeError,所以我很好奇发生了什么以及NotImplemented的用法/行为是什么.

python

30
推荐指数
2
解决办法
1万
查看次数

标签 统计

python ×1