[英]python objects, garbage collection
我有一個python對象,它收集一些請求數據,所以我可以根據我通過GET方法收到的過濾器和分類器創建模型查詢。 (排序= ID&為了= DESC ...)
class Search( object ):
sorters = []
filters = []
如果請求具有過濾器和分類器,則類屬性將填充正確的參數。 這很好用,查詢構建正常。 問題是當我觸發第二個請求時,分揀機和過濾器會保留前一個請求中的值,因此Search對象不是新的但是持久的。
知道它為什么會這樣嗎? 順便說一下,我是python的新手,PHP(我的區域)將只為每個請求實例化一個新對象。
因為您正在以這種方式創建類變量而不是成員變量。 類變量在每個實例之間共享(它們屬於類,而不是實例); 它們與其他語言中的靜態成員變量類似。
要創建成員變量,需要在構造函數中初始化它們,如下所示:
class Search(object):
def __init__(self):
self.sorters = []
self.filters = []
如果您希望將sorters
和filters
作為Search
實例成員,則需要對其進行定義。
class Search( object ):
def __init__(self, sorters=None, filters=None):
self.sorters = [] if sorters == None else sorters
self.filters = [] if filters == None else filters
這將允許您通過在初始化時提供sorters
filters
和filters
來實例化,或者稍后將它們分配給對象。 或兩者。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.