根据the docs,
__new__()
是一种静态方法(特殊情况,因此您无需声明 就像这样),它接受一个实例被请求的类 它的第一个论点。
显式不是类方法,但通常看起来像一个,除了手动调用__new__
的任何客户端需要显式传入类参数。例如:
>>> str.__new__()
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
str.__new__()
TypeError: str.__new__(): not enough arguments
>>> str.__new__(str)
''
但备用对象创建API - 例如all eight alternate datetime
constructors - 通常是classmethod
s,因此datetime.now()
按预期工作。
为什么__new__
设置为这样?