আমি কিছু কোড ডিবাগ করছি এবং যখন নির্দিষ্ট অভিধান অ্যাক্সেস করা হয় তখন আমি তা জানতে চাই। ঠিক আছে, এটি আসলে একটি শ্রেণি যা উপশ্রেণী 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পরিবর্তিত করেছি এবং কলটি সুপার কনস্ট্রাক্টরের কাছে পরিবর্তন করেছি। তবুও, কিছুই ঘটছে বলে মনে হচ্ছে না। আমি ভেবেছিলাম আমি চালাক হয়ে যাচ্ছি, তবে আমি ভাবছি যে আমার কোনও অন্য দিকে যেতে হবে কিনা।
সাহায্যের জন্য ধন্যবাদ!