Я создаю класс построителя запросов, который поможет в построении запроса для mongodb из параметров URL. Я никогда не делал много объектно-ориентированного программирования или разработал классы для потребления людьми, отличными от меня, помимо использования базовых языковых конструкций и использования django, встроенных в Модели.
Итак, у меня есть класс QueryBuilder
class QueryHelper():
"""
Help abstract out the problem of querying over vastly
different dataschemas.
"""
def __init__(self, collection_name, field_name, params_dict):
self.query_dict = {}
self.params_dict = params_dict
db = connection.get_db()
self.collection = db[collection_name]
def _build_query(self):
# check params dict and build a mongo query
pass
Теперь в _build_query
я буду проверять params dict и заполнять query_dict
, чтобы передать его функции mongo find()
.
В этом я просто задавался вопросом, существует ли абсолютно правильный подход к тому, должен ли _build_query
возвращать словарь или он должен просто изменить self.query_dict
. Поскольку это внутренний метод, я бы предположил, что это просто изменить self.query_dict
. Есть ли правильный способ (пифонический) подход к этому? Это просто глупо, а не важное дизайнерское решение? Любая помощь приветствуется. Спасибо.