Python__new__dundor方法

我在下面有以下代码,我知道它__new__用于创建类的实例,并且该__init__方法用于初始化对象的值。

__init__当您返回基类的一个实例,只叫什么名字?

我想要的是返回另一个名为 class A 的类的实例。有没有办法__init__配置 class A 的实例?

# Python program to
# demonstrate __new__ method
  
# class whose object
# is returned
class GeeksforGeeks(object):
    def __str__(self):
        return "GeeksforGeeks"
          
# class returning object
# of different class
class Geek(object):
    def __new__(cls):
        return GeeksforGeeks()
          
    def __init__(self):
        print("Inside init")
          
print(Geek())
Output:

GeeksforGeeks

回答

如文档中所述:

如果__new__()在对象构造期间调用并返回 的实例或子类cls,则新实例的__init__()
方法将被调用__init__(self[, ...])self例如新实例在哪里,其余参数与传递给对象构造函数的参数相同。

如果__new__()不返回 的实例cls,则__init__()不会调用新实例的方法。

所以不,它不会被调用。你可以自己手动调用。


以上是Python__new__dundor方法的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>