我目前正在开发一个 python 扭曲服务器用作消息处理应用程序。我遇到了一个奇怪的问题。
我指定我的类来处理到服务器的 get_POST,并将接收到的消息传递给进一步处理它的类。
消息处理成字典,该字典是每次有新消息时都会实例化的对象的成员。但是,在(例如)一条消息包含字典的 10 个项目之后,当处理只有 9 个条目的消息时,第 10 个仍然会在字典中。
我已经能够通过在处理消息之前明确清除字典来解决这个问题,例如:
d = {}
但是,我很困惑,因为在进一步处理字典并在每条新消息上重新实例化之后,该对象应该超出范围并收集垃圾。它似乎表现得好像对象不是一个实例并且保留成员就好像它是一个单例,或者成员是静态的。
在扭曲的框架下,正常范围策略的行为是否相同,或者我是否需要做一些额外的事情来确保对象在超出范围时被 GC?
谢谢!
-乔。