我正在使用一个为我提供一些对象的库(SocketIO会话,但这是问题范围之外的详细信息)。我想在连接时存储(引用)这些对象(而不是副本),然后再将其删除。来自C ++背景,我希望aset能够只存储指向这些对象的指针。但是,这些不能散列,因此我不能将它们放在set。而且我不知道用Python的方式来获得类似于指针的东西。我可以将它们放在列表中,但随后删除需要遍历(O(n)),并且插入将允许重复。是否有任何技巧可以从Python对象中获取行为类似于C ++指针(可比较,有序)的东西?现在,我正在做:# global varmy_objects = []# upon receive:my_objects.append(session)# upon removal:my_objects = my_objects - session
1 回答

忽然笑
TA贡献1806条经验 获得超5个赞
一种想法是使用对象的ID。它可以识别对象,尽管只有在您确实使用相同的对象而不是具有相同值的新对象时它才起作用。
# global var
my_objects = {}
# upon receive:
my_objects[id(session)] = session
# upon removal:
del my_objects[id(session)]
添加回答
举报
0/150
提交
取消