您的位置:首页 > 编程语言 > Python开发

python实现单例模式__init__ __new__区别

2014-06-23 15:45 513 查看
1.如果在类中同时定义了__init__和__new__,在创建对象的时候会有优先使用__new__

2.new方法会返回所构造的对象,init则不会,在使用new返回对象的时候会隐式调用init函数。new函数必须以cls作为第一个参数,而init则以self作为其第一个参数

3.利用new创建一个类的对象的最常用的方法为:super(currentclass, cls).__new__(cls[, ...]) 

class Singleton(object):
def __new__(cls, *args, **kwargs):
if not hasattr(cls, '_instance'):
cls._instance = super(Singleton, cls).__new__(cls, *args, **kwargs)
return cls._instance
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: