Python 单例类

Python 单例类

单例类是只能创建一个对象的类。当您执行一些重型操作时,例如创建数据库连接时,这有助于优化内存使用。

示例

class SingletonClass:
   _instance = None

   def __new__(cls):
      if cls._instance is None:
         print('Creating the object')
         cls._instance = super(SingletonClass, cls).__new__(cls)
      return cls._instance

obj1 = SingletonClass()
print(obj1)

obj2 = SingletonClass()
print(obj2)

以下是上述代码的工作原理 –

当声明一个 Python 类的实例时,它在内部调用__new__()方法。我们重写了__new__()方法,当创建一个类的对象时,Python 内部会调用该方法。它会检查我们的实例变量是否为 None。如果实例变量为 None,则创建一个新对象,并调用 super() 方法并返回包含此类对象的实例变量。

如果创建了多个对象,可以明确地看出对象只在第一次创建后被返回,之后返回相同的对象实例。

Creating the object
<__main__.SingletonClass object at 0x000002A5293A6B50>
<__main__.SingletonClass object at 0x000002A5293A6B50>

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程