صورة المؤلف
Python هي لغة سحرية بها العديد من المفاهيم التي قد لا يكون المستخدمون المتقدمون على دراية بها. الطرق السحرية أو الغامضة هي واحدة منها. الطرق السحرية هي طرق خاصة محاطة بشرطة سفلية مزدوجة. لم يتم استدعاؤها صراحةً على عكس الطرق العادية في بيثون. أحد هذه الأساليب السحرية هو __getitem__
طريقة تمكن كائنات Python من التصرف مثل التسلسلات أو الحاويات مثل القوائم والقواميس و tuple. يأخذ الفهرس أو الشريحة ويسترد القيمة المرتبطة به من المجموعة. يتم استدعاؤه تلقائيًا عندما نستخدم الامتداد indexer [ ]
عامل التشغيل للوصول إلى العناصر الموجودة داخل الكائن الخاص بك.
فكر في هذه الطريقة على أنها عصا سحرية تمنحك القدرة على استخراج المعلومات المطلوبة بمجرد كتابة بضعة أسطر من التعليمات البرمجية. ممتع أليس كذلك؟ تُستخدم هذه الطريقة أيضًا على نطاق واسع في تحليل البيانات والتعلم الآلي. لذا ، دعنا نتعمق أكثر في ملف __getitem__
طريقة واكتشاف قوتها ومرونتها.
أريدك أن تفهم أن واجبك كمبرمج بايثون هو أكثر من مجرد كتابة كود وظيفي. يجب أن تكون التعليمات البرمجية الخاصة بك فعالة وقابلة للقراءة ويمكن صيانتها. استخدام __getitem__
سوف تساعدك على تحقيق هذه الأهداف. فيما يلي بعض الفوائد الأخرى لاستخدام هذه الطريقة السحرية:
- يقلل استخدام الذاكرة من خلال السماح لك باستخراج المعلومات الأساسية فقط بدلاً من تحميل بنية البيانات الكاملة في الذاكرة
- يوفر قدرًا أكبر من المرونة في كيفية معالجة البيانات ومعالجتها
- يسمح لك بالتكرار على المجموعة دون تكرار البيانات
- يعزز الوظيفة من خلال السماح لك بكتابة فهرسة متقدمة قد لا تكون ممكنة مع الأنواع المضمنة
- يبسط الكود لأنه يستخدم الترميز المألوف
بناء الجملة لملف __getitem__
الطريقة على النحو التالي:
def __getitem__(self, index): # Your Implementation pass
يحدد سلوك الوظيفة ويأخذ الفهرس الذي تحاول الوصول إليه في معاملها. يمكننا استخدام هذه الطريقة على النحو التالي:
my_obj[index]
هذا يترجم إلى البيان my_obj.__getitem__(index)
تحت الغطاء. الآن قد تعتقد كيف تختلف عن المضمنة indexer []
المشغل أو العامل؟ أينما تستخدم هذا الترميز ، يقوم بيثون تلقائيًا باستدعاء __getitem__
طريقة لك وهو الاختصار للوصول إلى العناصر. ولكن إذا كنت تريد تغيير سلوك فهرسة الكائنات المخصصة ، فأنت بحاجة إلى استدعاء ملف __getitem__
الأسلوب.
مثال #01
لنبدأ بمثال سهل أولاً. سننشئ فصلًا للطلاب يحتوي على قائمة بجميع الطلاب ويمكننا الوصول إليهم عن طريق الفهرس ونعتبر أن الفهرس يمثل معرف الطالب الفريد الخاص بهم.
class Student: def __init__(self, names): self.names=names def __getitem__(self,index): return self.names[index] section_A= Student(["David", "Elsa", "Qasim"])
print(section_A[2])
الإخراج:
سننتقل الآن إلى مثال متقدم حيث سنقوم بتغيير سلوك الفهرسة باستخدام __getitem__
طريقة. لنفترض أن لدي قائمة بعناصر السلسلة وأريد استرداد العنصر كلما أدخلت موضع الفهرس الخاص به ويمكنني أيضًا الحصول على موضع الفهرس إذا قمت بإدخال السلسلة نفسها.
class MyList: def __init__(self, items): self.items = items def __getitem__(self, index): if isinstance(index, int): return self.items[index] elif isinstance(index, str): return self.items.index(index) else: raise TypeError("Invalid Argument Type") my_list = MyList(['red', 'blue', 'green', 'black']) # Indexing with integer keys
print(my_list[0]) print(my_list[2]) # Indexing with string keys
print(my_list['red']) print(my_list['green'])
الإخراج:
red
green
0 2
هذه الطريقة مفيدة للغاية للبحث السريع عن سمات المثيل. بالنظر إلى مرونة وتعدد استخدامات هذه الطريقة ، أود أن أقول إن هذه واحدة من أكثر الأساليب السحرية التي لا تستخدم بشكل كافٍ في بايثون. أتمنى أن تكون قد استمتعت بقراءة هذا المقال وأخبرني في قسم التعليقات إذا كنت مهتمًا بمعرفة الطرق السحرية الأخرى في Python.
كانوال محرين مطور برامج طموح لديه اهتمام كبير بعلوم البيانات وتطبيقات الذكاء الاصطناعي في الطب. تم اختيار Kanwal باعتباره Google Generation Scholar 2022 لمنطقة APAC. يحب Kanwal مشاركة المعرفة التقنية من خلال كتابة مقالات حول الموضوعات الشائعة ، وهو متحمس لتحسين تمثيل المرأة في صناعة التكنولوجيا.
- محتوى مدعوم من تحسين محركات البحث وتوزيع العلاقات العامة. تضخيم اليوم.
- بلاتوبلوكشين. Web3 Metaverse Intelligence. تضخيم المعرفة. الوصول هنا.
- المصدر https://www.kdnuggets.com/2023/03/introduction-getitem-magic-method-python.html?utm_source=rss&utm_medium=rss&utm_campaign=introduction-to-__getitem__-a-magic-method-in-python
- :يكون
- 2022
- 8
- a
- من نحن
- الوصول
- الوصول
- التأهيل
- متقدم
- AI
- الذكاء الاصطناعي في الطب
- الكل
- السماح
- تحليل
- و
- اباك
- التطبيقات
- هي
- حجة
- البند
- مقالات
- AS
- تطمح
- أسوشيتد
- سمات
- تلقائيا
- BE
- الفوائد
- اسود
- الأزرق
- مدمج
- by
- دعوة
- تسمى
- دعوات
- CAN
- تغيير
- فئة
- الكود
- مجموعة شتاء XNUMX
- التعليق
- إكمال
- المفاهيم
- نظر
- النظر
- حاويات
- خلق
- على
- البيانات
- تحليل البيانات
- علم البيانات
- ديفيد
- أعمق
- يعرف
- المطور
- مختلف
- اكتشف
- مضاعفة
- e
- سهل
- فعال
- العنصر
- عناصر
- تمكين
- أدخل
- أساسي
- حتى
- مثال
- استخراج
- جدا
- مألوف
- قليل
- الاسم الأول
- مرونة
- متابعات
- في حالة
- تبدأ من
- وظيفة
- وظيفي
- وظيفة
- جيل
- دولار فقط واحصل على خصم XNUMX% على جميع
- الأهداف
- شراء مراجعات جوجل
- منح
- أكبر
- أخضر
- التعامل
- يملك
- مساعدة
- هنا
- غطاء محرك السيارة
- أمل
- كيفية
- HTTPS
- i
- ID
- التنفيذ
- تحسين
- in
- مؤشر
- العالمية
- معلومات
- مثل
- بدلًا من ذلك
- مصلحة
- يستفد
- وكتابة مواضيع مثيرة للاهتمام
- المُقدّمة
- IT
- العناصر
- انها
- نفسها
- KD nuggets
- شديد
- مفاتيح
- علم
- المعرفة
- لغة
- تعلم
- مثل
- خطوط
- لينكدين:
- قائمة
- قوائم
- جار التحميل
- بحث
- آلة
- آلة التعلم
- سحر
- يمكن الحفاظ عليها
- التلاعب
- كثير
- دواء
- مكبر الصوت : يدعم، مع دعم ميكروفون مدمج لمنع الضوضاء
- طريقة
- طرق
- ربما
- الأكثر من ذلك
- أكثر
- خطوة
- أسماء
- حاجة
- موضوع
- الأجسام
- of
- on
- ONE
- عامل
- العادي
- أخرى
- المعلمة
- عاطفي
- أفلاطون
- الذكاء افلاطون البيانات
- أفلاطون داتا
- ان يرتفع المركز
- ممكن
- قوة
- مبرمج
- بايثون
- سريع
- رفع
- نادي القراءة
- أحمر
- منطقة
- التمثيل
- يمثل
- مطلوب
- عائد أعلى
- s
- علوم
- القسم
- مختار
- SELF
- مشاركة
- اختزال
- ينبغي
- شريحة
- So
- تطبيقات الكمبيوتر
- بعض
- تختص
- بداية
- ملخص الحساب
- بناء
- طالب
- عدد الطلبة
- هذه
- محاط
- بناء الجملة
- يأخذ
- التكنولوجيا
- صناعة التكنولوجيا
- تقني
- أن
- •
- من مشاركة
- منهم
- تشبه
- اعتقد
- إلى
- المواضيع
- جديدة
- أنواع
- مع
- فهم
- فريد من نوعه
- us
- الأستعمال
- تستخدم
- المستخدمين
- قيمنا
- صولجان
- على نحو واسع
- سوف
- مع
- في غضون
- بدون
- نسائي
- المرأة في التكنولوجيا
- سوف
- اكتب
- جاري الكتابة
- حل متجر العقارات الشامل الخاص بك في جورجيا
- زفيرنت