Python – What Is Singleton Class ?


Python – What Is Singleton Class ?

Table Of Content:

  1. What Is Singleton Class ?
  2. Example Of Singleton Class.
  3. Where Do We Use Singleton Class?
  4. Why Do We Want To Use Singleton Class?
  5. Advantages Of Singleton Class.
  6. When Not To Use Singleton Class?
  7. One Liner Summary.

(1) What Is Singleton Class ?

(2) Example Of Singleton Class .

(3) Where Do We Use Singleton Class ?

(4) Why Do We Want To Use A Singleton?

(5) Advantages Of Singleton Class.

(6) When Not To Use Singleton Class ?

(7) One-liner summary

(8) Let’s Compare BEFORE vs AFTER Singleton For Each

(9) Python Example Of Singleton Classes .

Singleton Pattern: Common Decorator:

import os

def singleton(cls):
    instances = {}
    def _singleton(*args, **kwargs):
        key = str(cls) + str(os.getpid())
        if key not in instances:
            instances[key] = cls(*args, **kwargs)
        return instances[key]
    return _singleton

Example-1: Logger Singleton

@singleton
class Logger:
    def __init__(self):
        self.log_file = open('app.log', 'a')
        print("Logger instance created!")

    def log(self, message):
        self.log_file.write(message + '\n')
        self.log_file.flush()

Example-2: Logger Singleton

@singleton
class Config:
    def __init__(self):
        print("Loading config...")
        self.api_key = "SECRET_API_KEY"
        self.env = "production"

Example-3: Database Connection Pool Singleton (Mock)

@singleton
class DBConnectionPool:
    def __init__(self):
        print("DB Connection Pool created!")
        self.connections = ["conn1", "conn2", "conn3"]

    def get_connection(self):
        return self.connections.pop() if self.connections else None

Leave a Reply

Your email address will not be published. Required fields are marked *