আসুন উদাহরণস্বরূপ ধরে নেওয়া যাক আমি সাবক্লাস করতে চাই dictএবং সমস্ত কীগুলি মূলধনযুক্ত করতে চাই:
class capdict(dict):
def __init__(self,*args,**kwds):
super().__init__(*args,**kwds)
mod = [(k.capitalize(),v) for k,v in super().items()]
super().clear()
super().update(mod)
def __getitem__(self,key):
return super().__getitem__(key.capitalize())
def __setitem__(self,key,value):
super().__setitem__(key.capitalize(),value)
def __delitem__(self,key):
super().__detitem__(key.capitalize())
এটি একটি পরিমাণে কাজ করে,
>>> ex = capdict(map(reversed,enumerate("abc")))
>>> ex
{'A': 0, 'B': 1, 'C': 2}
>>> ex['a']
0
তবে, অবশ্যই, প্রয়োগের জন্য কেবল মনে আছে সেই পদ্ধতিগুলির জন্য
>>> 'a' in ex
False
পছন্দসই আচরণ নয়।
এখন, "মূল "গুলি থেকে প্রাপ্ত সমস্ত পদ্ধতিতে পূরণ করার অলস উপায়টি মেশানো হবে collections.abc.MutableMapping। কেবল এটি এখানে কাজ করে না। আমি অনুমান করি কারণ প্রশ্নে পদ্ধতিগুলি ( __contains__উদাহরণস্বরূপ) ইতিমধ্যে সরবরাহ করা হয়েছে dict।
আমার কেক খাওয়ার এবং এটি খাওয়ার কোনও উপায় আছে? কিছু জাদু MutableMappingকেবলমাত্র আমি যে পদ্ধতিগুলিকে ওভাররাইড করেছি তা কেবল দেখতে দিন যাতে এটি অন্যদের উপর ভিত্তি করে প্রতিস্থাপন করে?
os._Environ।
MutableMapping। দেখুন কেস অবশ অভিধান ।