В настоящее время я разрабатываю витой сервер python для использования в качестве приложения обработки сообщений. Я столкнулся с какой-то странной проблемой.скрученная сборка мусора python
Я определяю свой класс для обработки get_POST на сервере и передает полученное сообщение классу, который его обрабатывает.
Сообщение обрабатывается в словаре, который является членом объекта, который создается при каждом появлении нового сообщения. Однако после (например) сообщение содержало 10 элементов для словаря, когда обрабатывается сообщение только с 9 записями, 10-е будет по-прежнему находиться в словаре.
Я был в состоянии работать вокруг этого явно убирая словаря перед обработкой сообщений, например:
d = {}
Однако я озадачен, потому что объект должен быть вне объема и мусора, собранных после того, как словарь был дополнительно обработан, и повторно подтвержден на каждое новое сообщение. Кажется, что он действует как объект, а не является экземпляром и сохраняет членов, как если бы он был одиночным, или члены были статическими.
Выполняют ли обычные политики определения области видимости в рамках скрученной структуры или мне нужно сделать что-то дополнительное, чтобы гарантировать, что объекты GC'd, когда они выпадают из области видимости?
Спасибо!
-joe.
Это было бы очень простой вопрос, если бы вы включили немного кода, освещающего ваш подход (особенно, если на самом деле это был http://sscce.org/). Когда эта информация опущена, это вопрос «догадайтесь, что случилось с невидимой программой». :( –
Спасибо, Жан-Поль, мы смогли понять это ниже, и это связано с моим непониманием переменных класса и экземпляра, и не имеет ничего общего с искаженным. –