class Num:
def __init__(self,num):
self.n = num
我读到该__init__
方法返回None
。当我执行a=Num(5)
时,Num(5)
将调用__init__
该类的方法。但是如果__init__
返回None
则不a
应该引用任何内容。而是a
引用Class的对象。Num
它是如何发生的?那么__init__
返回None
或类的对象呢?
class Num:
def __init__(self,num):
self.n = num
我读到该__init__
方法返回None
。当我执行a=Num(5)
时,Num(5)
将调用__init__
该类的方法。但是如果__init__
返回None
则不a
应该引用任何内容。而是a
引用Class的对象。Num
它是如何发生的?那么__init__
返回None
或类的对象呢?
__init__()
返回None
。它是__new__()
返回新实例。
当执行 a=Num(5) 时,您确实创建了对象并返回新创建的对象。但这并不像您__init__
在创建对象时直接调用那么容易。
__init__
在后台被一些 Python 魔术调用作为启动过程的一部分。基本上,这__new__
是魔法的一部分。但是,只有极少数情况下,您想要摆弄__new__
. 只有在您真的知道自己在做什么并且确实没有更简单的方法可以实现您的目标时,您才应该这样做。