码迷,mamicode.com
首页 > 编程语言 > 详细

单例模式【python】

时间:2017-06-07 23:16:32      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:返回   return   one   创建对象   factory   判断   不同   创建   单例模式   

  在python中,如需让一个类只能创建一个实例对象,怎么能才能做到呢?

  思路:1.通过同一个类创建的不同对象,都让他们指向同一个方向。

       2.让个类只能创建唯一的实例对象。

 

  方法:用到 _ _new_ _ 方法

 

 

  ‘‘‘定义一个类‘‘‘

  让这个类自己通过new方法创建一个对象

  并在每次创建对象时进行判断,如果变量 实例对象 没有 那就创建,否则指向已创建单例对象

 

   代码示例:

# coding=utf-8
class CarFactory(object):
  """定义一个汽车厂类"""
  __first_new = True    # 定义一个变量 首次创建 为真
  __instance = None    # 定义一个变量 单例对象 没有

  def __new__(cls):
  """定义一个__new__方法"""
  if cls.__first_new:               # 如果变量:首次创建 为真
    cls.__instance = object.__new__(cls)      # 则创建当前实例对象 cls.__instance 指向 object.__new__(cls)
    cls.__first_new = False          # 创建完一个对象后让他为 False
    return cls.__instance            # 返回创建的实例对象
  else:
    return cls.__instance            # 如果变量:首次创建 为False 直接返回上一次实力对象

 

feng_tian = CarFactory()
da_zhong = CarFactory()
print(feng_tian)
print(da_zhong)

 

输出:

指向同一个方向

 

单例模式【python】

标签:返回   return   one   创建对象   factory   判断   不同   创建   单例模式   

原文地址:http://www.cnblogs.com/zhuchen/p/6959438.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!