• 单例模式【python】


      在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)

    输出:

    指向同一个方向

  • 相关阅读:
    【重启C++】-- 序
    关于值传递和指针传递
    *** 没有规则可以创建目标“test”。 停止。
    对无法解析的外部符号
    [转]解决在库中已定义的办法
    对库的选择顺序上的库文件
    去除MFC特性之一
    程序集之·二(修改一)
    使用excel4j生成excel文件
    Java拟合算法
  • 原文地址:https://www.cnblogs.com/zhuchen/p/6959438.html
Copyright © 2020-2023  润新知