मैं कुछ कोड डिबग कर रहा हूं और मैं यह पता लगाना चाहता हूं कि किसी विशेष शब्दकोश को कब एक्सेस किया जाए। खैर, यह वास्तव में एक वर्ग है जो उप- dictअतिरिक्त और कुछ अतिरिक्त सुविधाओं को लागू करता है। वैसे भी, मैं जो करना चाहूंगा वह dictखुद को उप-वर्ग करना और ओवरराइड जोड़ना __getitem__और __setitem__कुछ डिबगिंग आउटपुट का उत्पादन करना है। अभी, मेरे पास है
class DictWatch(dict):
def __init__(self, *args):
dict.__init__(self, args)
def __getitem__(self, key):
val = dict.__getitem__(self, key)
log.info("GET %s['%s'] = %s" % str(dict.get(self, 'name_label')), str(key), str(val)))
return val
def __setitem__(self, key, val):
log.info("SET %s['%s'] = %s" % str(dict.get(self, 'name_label')), str(key), str(val)))
dict.__setitem__(self, key, val)
' name_label'एक कुंजी है जो अंततः सेट हो जाएगी कि मैं आउटपुट की पहचान करने के लिए उपयोग करना चाहता हूं। मैंने तब वर्ग को बदल दिया है जो मैं उपवर्ग के DictWatchबजाय साधन कर रहा हूं dictऔर कॉल को सुपरकंस्ट्रक्टर में बदल दिया। फिर भी कुछ होता नहीं दिख रहा है। मुझे लगा कि मैं चालाक हो रहा हूं, लेकिन मुझे आश्चर्य है कि क्या मुझे एक अलग दिशा में जाना चाहिए।
सहायता के लिए धन्यवाद!