所以现在我正在尝试理解何时使用Class以及何时使用Dictionary来保存数据之间的区别。
我正在努力解决的具体问题是管理烧瓶应用程序中的会话。从右边开始,我有两本词典。我不需要专门调试任何内容,因此提供的代码将是一些注释的片段。
client = {}
client[session['user_id'] = request.sid #stores the active socket ID
online_users = {}
online_users[session['user_id'] = {}
online_user[session['user_id']['somestr'] = somevariable/string
online_user[session['user_id']['somestr1'] = somevariable/string
online_user[session['user_id']['somestr2'] = {}
#etc
我在这些词典中唯一真正的逻辑是在用户浏览网站时更新值。所以如果我将它们移到课堂上,我真的只会有吸气剂和制定者。此外,这些键值对中的一些甚至可能不存在,因此随着时间的推移会不断增加和删除。
这个问题有几个部分。
1)我是否应该考虑将这样的事情转移到课堂上。它确实有逻辑,但似乎有足够的客户端一次登录,使用字典可能会有真正的性能优势。
2)如果我想将这些更改为类,那究竟会如何工作?
Class Online_Users():
def __init__(self, **kwargs):
self.user = session['user_id']
self.somevar = 'somestring'
#etc
然后是时候创建类的实例
了clients = {}
clients[session['user_id']] = Online_Users(arguments)
如果没有某种存储会话值的字典,我真的没有办法做到这一点。
编辑:所以第三个问题可能也会有所帮助。 如果我想完全使用类来完成这个,我如何将类实例连接到每个单独的用户?如果没有字典,我很难理解这是如何工作的。这可能与我对会议如何运作的理解不足有关。