代码之家  ›  专栏  ›  技术社区  ›  chimeracoder

重写Python[duplicate]中的\uuuuu new\uuuuuuuuu和\uuuu init\uuuuuuuuuu

  •  8
  • chimeracoder  · 技术社区  · 16 年前

    可能重复:
    Python's use of __new__ and __init__ ?

    据我所知, __init__ 与Java中的构造函数不同,因为 __初始化__ 只初始化已隐式构造的对象(因为 被召唤 __new__ ). 然而,我所需要定义的所有东西都使用了Java中“constructor”的后一个属性。如果程序员想重写 __新建__

    :作为记录,我问的部分原因是我想知道覆盖的优点/缺点是什么 新的

    Moving Beyond Factories in Python

    2 回复  |  直到 9 年前
        1
  •  12
  •   abyx    16 年前

    __new__ __新建__ 当您想要控制新对象的创建时,例如单例。如果你的 总是返回同一个对象的实例,它是一个单例。你不能这样做 __init__

    一般来说,在“python as Guido”中,“您不应该使用 __新建__ 每月不止一次:)

        2
  •  3
  •   Community Mohan Dere    9 年前

    __new__ __init__ 是用来初始化的。

    __新建__ ,请参见 namedtuple 例如(也是 Python's use of __new__ and __init__?