我了解__new__
的作用(以及它与__init__
的区别),因此我不感兴趣的是定义,而是关心何时以及如何使用__new__
。
文档说明如下:
通常情况下,您不需要覆盖
__new__
,除非您正在子类化像str
、int
、unicode
或tuple
这样的不可变类型。
但我想不到其他用例来使用__new__
,也不知道如何正确使用它(例如在子类化不可变类型时为什么需要它)。
那么,何时、为什么以及如何需要使用__new__
呢?
我感兴趣的是使用情况,而不是它的作用(我知道它的作用)。
__init__
始终在__new__
之后调用(事实并非如此)。此问题询问__new__
的实际用例。这个问题的答案不是那个问题的答案。 - Lauritz V. Thaulow