【发布时间】:2012-06-16 13:22:44
【问题描述】:
我正在创建一个查询构建器类,该类将有助于从 URL 参数构造 mongodb 查询。除了使用基本的语言结构和使用 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 是可以的。有没有正确的方法(pythonic)方法来解决这个问题?这只是愚蠢而不是重要的设计决定吗?任何帮助表示赞赏。
【问题讨论】:
-
我在这个问题上有 7 年的背景,如果其他人也有同样的疑问,我发现的最佳策略与以下想法非常相似:-blog.cleancoder.com/uncle-bob/2012/08/13/…-yegor256.com/elegant-objects.html-@ 987654323@
标签: python oop instance-variables