Name
__new__ — Python 2.2 and later
Synopsis
__new__(cls[,args...])When you call
C
(
[args...]
)
and C is a new-style class, Python will
obtain the new instance x that you are
creating by invoking C
.__new__(
C,[args...]
).
__new__ is a static method that every new-style
class has (often simply inheriting it from object)
and it can return any value x. In other
words, __new__ is not constrained to returning a
new instance of C, although normally it is
expected to do so. If, and only if, the value
x that __new__
returns is indeed an instance of C
(whether a new or previously existing one), Python continues after
calling __new__ by implicitly calling __init__ on x.