相关疑难解决方法(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万
查看次数

抽象基类:在__init __.py`中引发NotImplementedError()?

PyCharm警告我 Call to __init__ of super class is missed

class AbstractBase(object):
    def __init__(self):
        raise NotImplementedError()

class RealChild(AbstractBase):
    def __init__(self):
        #super(RealChild, self).__init__() ####
        print('do stuff')

child=RealChild()
Run Code Online (Sandbox Code Playgroud)

但如果我打电话给它,那课AbstractBase就会提高NotImplementedError.

我是一只羊,不知道如何继续:-)

python pycharm

7
推荐指数
2
解决办法
2294
查看次数

标签 统计

python ×2

pycharm ×1