উত্তর:
আপনার __getitem__
পদ্ধতিটি ব্যবহার করা দরকার ।
class MyClass:
def __getitem__(self, key):
return key * 2
myobj = MyClass()
myobj[3] #Output: 6
এবং যদি আপনি মান নির্ধারণ করতে চলেছেন তবে আপনাকেও __setitem__
পদ্ধতিটি বাস্তবায়ন করতে হবে, অন্যথায় এটি ঘটবে:
>>> myobj[5] = 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: MyClass instance has no attribute '__setitem__'
এটি পুরোপুরি ওভারলোড করার জন্য আপনাকেও পদ্ধতি __setitem__
এবং __delitem__
পদ্ধতিগুলি প্রয়োগ করতে হবে ।
সম্পাদন করা
আমি প্রায় ভুলে গেছি ... আপনি যদি একটি তালিকা সম্পূর্ণরূপে অনুকরণ করতে চান তবে আপনারও এটি দরকার __getslice__, __setslice__ and __delslice__
।
Http://docs.python.org/references/datamodel.html এ সমস্ত নথিভুক্ত রয়েছে
আপনি __getitem__
পদ্ধতিটি সন্ধান করছেন। দেখুন http://docs.python.org/reference/datamodel.html , বিভাগ 3.4.6
__getslice__,
__setslice__` এবং__delslice__' have been deprecated for the last few releases of ver 2.x (not sure exactly when), and are no longer supported in ver 3.x. Instead, use
__getitem__.
__setitem__` এবং__delitem__' and test if the argument is of type
ফালি, i.e.:
যদি isinstance (ARG, ফালি): ...