max*_*max 9 python constructor class object
文档意味着它的确定为__new__(cls, ...)返回比不同类型的对象cls.它说在那种情况下__init__()不会被调用.它没有明确说明,但常识或简单的测试确认了对象的结果不会有类型cls.
为什么允许这种看似奇怪的行为?用例是什么?这显然是故意的.
在为单元测试创建模拟对象时,它可能很有用.
您可以将__new__方法更改为在某些情况下返回具有相同接口的另一个对象(如模拟原始类实例的行为),而不修改其余代码.