@BladeHeroku

Как создать паттерн Singleton, который сохраняет в __init__ разные значения при объявлении класс и выводит их?

Как сохранить разные значения в __init__ при объявлении класс и выводить их в connect?
Должно получится:
Соединение с БД: 'root', '1234', 80
Соединение с БД: 'root2', '5678', 40

class DataBase:

  __instance = None

  def __new__(cls, *args, **kwargs):
    if cls.__instance is None:
      cls.__instance = super().__new__(cls)

    return cls.__instance

  def __del__(cls):
    cls.__instance = None


  def __init__(self, user, psw, port):
    self.user = user
    self.psw = psw
    self.port = port

  def connect(self):
    print('Соединение с БД: ', self.user, self.psw, self.port)


db = DataBase('root', '1234', 80)
db2 = DataBase('root2', '5678', 40)

print(id(db))
print(id(db2))
print(id(db) == id(db), db is db2)

db.connect()
db2.connect()
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Очевидно в __init__ нужно сохранять не отдельные поля, а добавлять словарь в список.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы