我需要一个可以从任何地方访问的单例类实例,该实例具有某些可以更改的会话变量
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')
我目前的财产法阻止了这一点。我确实希望将每个会话变量本身作为一个属性来维护,但我也希望将它们全部设置在一起,因为有很多会话变量。只是不喜欢把它当作字典传
如果有人能帮助设计和/或改进,我将不胜感激。我需要一个类的实例,它有一组可以从任何地方访问的变量。类中的变量可以更改,但类实例本身不能更改。我需要一个更好的方法是一次性设置所有变量(最好是一个方法,而不是设置字典)
听起来您需要一组只读属性,但只需要一个“setter”
您可以使用自定义描述符简化一些样板文件:
相关问题 更多 >
编程相关推荐