Python 的 __init__ 和 __new__ 区别?单例模式怎么实现?
__new__(cls, ...) 是构造方法:负责创建并返回实例(在 __init__ 之前调用),是真正的类方法(参数 cls),通常返回 super().__new__(cls);__init__(self, ...) 是初始化方法:对已创建实例初始化属性,返回 None。单例实现:① 重写 __new__ 控制只创建一个实例:def __new__(cls): if not hasattr(cls, '_instance'): cls._instance = super().__new__(cls); return cls._instance;② 元类实现;③ 模块级单例(模块只导入一次)。
一起交流
分享经验,让问题更进一步
讨论,从你的观点开始
还没有回复,欢迎补充经验或分享不同的思路。