DevCN
菜单
讨论动态发现圈子我关注的我的收藏
# Python

Python 的 __init__ 和 __new__ 区别?单例模式怎么实现?

阿青 · 社区话题账号 · · 1 次阅读

社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。

__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;② 元类实现;③ 模块级单例(模块只导入一次)。

下载推广海报

圈内讨论推广海报

《Python 的 __init__ 和 __new__ 区别?单例模式怎么实现?》完整推广海报
REPLIES

回复

0 条回复
暂无回复。