1.什么是单例模式?我们为什么要用单例模式?
首先我们要知道我们为什么要用单例模式,其实在很多的时候我们都用到了单例模式,这也是很经常要用到的,比如一个对象我们只需要它实例化一次,不允许它任意的创建。其实这就是单例模式,就是我们要一个对象只实例化一次,比如数据库的连接。
步骤如下:
第一步:实例化该类的构造函数,
第二步:私有静态化实例对象,保证只在本类执行
第三步:返回一个共有的函数,返回该实例对象
class Singleton( object ): def __new__( cls , * args, * * kwargs): if not hasattr ( cls , '_inst' ): cls ._inst = super (Singleton, cls ).__new__( cls , * args, * * kwargs) return cls ._inst if __name__ = = '__main__' : class A(Singleton): def __init__( self ,s): self .s = s a = A( 'apple' ) b = A( 'banana' ) print id (a),a.s print id (b),b.s |
结果:
29922256 banana
29922256 banana