Мне нужен экземпляр класса Singleton, доступный из любого места и имеющий определенные переменные сеанса, которые могут изменяться.
class MySingletonClass(Singleton):
@property
def session(self):
return self
@session.setter
def session(self, d):
self.name = d['name']
self.id = d['id']
self.mode = d['mode']
experiment = MySingletonClass()
Затем он может быть импортирован и переменные установлены как таковые
from core import experiment
experiment.session={'name':'my_exp_name', 'mode':'my_mode', 'id':"1234"}
Я хочу передать их все в одном, но вместо словаря, который у меня есть сейчас, в качестве аргумента функции. Итак, что-то вроде следующего:
experiment.set_session('my_exp_name', 'my_mode','1234')
Мой текущий подход к свойствам препятствует этому. Я действительно хочу сохранить каждую переменную сеанса как свойство само по себе, но я также хочу установить их все вместе, поскольку существует множество переменных сеанса. Просто не люблю передавать это как словарь.
Я был бы признателен, если бы кто-нибудь мог помочь с дизайном и / или улучшить его. Мне нужен экземпляр класса с множеством переменных, к которым можно получить доступ откуда угодно. Переменные внутри класса могут изменяться, но не сам экземпляр класса. И мне нужно было лучше установить все переменные в один go (желательно метод вместо установки словаря)