मैं एक क्वेरी बिल्डर क्लास बना रहा हूं जो यूआरएल पैराम्स से मोंगोडब के लिए एक क्वेरी बनाने में मदद करेगा। मैंने मूल भाषा संरचनाओं का उपयोग करने और मॉडलों में निर्मित डीजेंगो का उपयोग करने के अलावा, मेरे अलावा अन्य लोगों द्वारा उपभोग के लिए अधिक ऑब्जेक्ट उन्मुख प्रोग्रामिंग, या डिज़ाइन कक्षाएं कभी नहीं की हैं।क्या आंतरिक वर्ग विधियां वापसी या पाइथन में इंस्टेंस चर को संशोधित करनी चाहिए?
तो मैं इस 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
में मैं परम dict जाँच की जाएगी और query_dict
तो पॉप्युलेट के रूप में यह के मोंगो को find()
समारोह पारित करने के लिए की है। ऐसा करने में मैं बस सोच रहा था कि _build_query
को एक शब्दकोश वापस करना चाहिए या फिर इसे self.query_dict
संशोधित करना चाहिए या नहीं। चूंकि यह एक आंतरिक विधि है, इसलिए मुझे लगता है कि self.query_dict
को संशोधित करना ठीक है। क्या इस पर पहुंचने का कोई सही तरीका (पायथनिक) तरीका है ?? क्या यह सिर्फ मूर्ख है और एक महत्वपूर्ण डिजाइन निर्णय नहीं है ?? किसी भी मदद की सराहना की है। धन्यवाद।
'.execute()' अनावश्यक है। आप '.all()', '.irst() ',' .one() 'का उपयोग करके निष्पादन को ट्रिगर कर सकते हैं। – jfs
निश्चित रूप से, यह अच्छा है यदि आपके पास एक से अधिक विधि हैं जो वास्तव में कुछ करती हैं। – kindall