首页 > 编程语言 > 详细

Python单例设计模式

时间:2019-09-02 01:00:31      阅读:75      评论:0      收藏:0      [点我收藏+]

(1)为什么使用设计模式?

  使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

(2)单例设计模式概念

  让类创建的对象只有唯一的一个实例,即每次执行  类名() 返回的对象,内存地址都是相同的。

(3)__new__与__init__方法的作用:

  使用 类名() 创建对象时,python解释器首先会调用 __new__ 方法为对象分配内存空间,该方法为基类object内置的静态方法,一般无需手动调用。

        __new__方法的作用有两个:①为对象分配内存空间;②返回对象引用。

   __init__方法的作用有两个:①对象初始化;②定义实例属性。

(4)如何实现单例设计模式?

  实现单例设计模式,其实就是重写object基类的内置静态方法__new__,实现每次调用 类名()返回的对象的内存地址不变。

 1 #! /usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 class MusicPlayer(object):
 4     instance = None
 5     def __new__(cls, *args, **kwargs):
 6         if cls.instance is None:
 7             print("创建对象,分配空间")
 8             cls.instance = super().__new__(cls) # 一定要重新调用父类的__new__方法,并添加参数cls,表示当前调用的类
 9         return cls.instance   #返回对象的引用,解释器才会继续调用__init__方法初始化对象
10 
11     def __init__(self):
12         print("播放器初始化")
13 
14 if __name__ == __main__:
15     piano = MusicPlayer()
16     print(piano)
17 
18     guitar = MusicPlayer()
19     print(guitar)

 

                     

Python单例设计模式

原文:https://www.cnblogs.com/clearlove4396/p/11442848.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!