بايثون هي واحدة من لغات البرمجة الأكثر شعبية في العالم. إن بساطته وسهولة استخدامه تجعله اختيارا ممتازا للمبتدئين ، كما أن مرونته وقوته تجعله اللغة المفضلة للمطورين المحترفين. عندما تبدأ في تعلم بايثون ، فإن أحد الأشياء المهمة التي تحتاج إلى فهمها هو العمل مع أساليب الفصل. طرق الفئة هي وظائف يتم تعريفها داخل فئة ويمكن أن تؤدي عمليات مختلفة على كائنات من تلك الفئة.
ومع ذلك ، عندما تصادف عددا كبيرا من الفصول والأساليب ، قد يكون من الصعب أحيانا تتبع جميع الطرق المتاحة للفصل. في هذه المقالة ، سنخبرك عن بعض الطرق البسيطة لتعلم جميع طرق الفصل في بايثون. سيساعدك هذا على فهم العمليات التي يمكنك إجراؤها على الكائنات الخاصة بك والوظائف المتوفرة في كل فصل بشكل أفضل.
واحدة من أسهل الطرق لمعرفة جميع أساليب فئة هو استخدام المدمج في دير() وظيفة. تقوم وظيفة دير() بإرجاع قائمة بجميع سمات وطرق الكائن ، بما في ذلك السمات الموروثة. يمكنك استخدام هذه الوظيفة للحصول على قائمة بجميع طرق الفصل. على سبيل المثال:
بعد تنفيذ هذا الرمز ، سوف تحصل على قائمة بجميع أساليب فئة ميكلاس. إذا كنت تريد فقط معرفة أسماء الطرق بدون معلومات إضافية ، فيمكنك استخدام الكود التالي:
فئة ميكلاس:
طريقة مواطن1 (ذاتي):
تمريرة
طريقة مواطن2 (ذاتي):
تمريرة
طريقة مواطن3 (ذاتي):
تمريرة
طباعة ([طريقة للطريقة في دير (ميكلاس) إذا كان للاستدعاء (جيتاتر (ميكلاس ، طريقة))])
هذه مجرد طريقة واحدة لتعلم جميع طرق الفصل في بايثون. هناك طرق أخرى ، مثل استخدام وحدة الفحص أو تحليل الكود المصدري لفئة باستخدام الانعكاس. يمكنك معرفة المزيد عنها من وثائق بايثون. نأمل أن تكون هذه المقالة قد ساعدتك على فهم أفضل لكيفية تعلم جميع طرق الفصل في بايثون وكيفية استخدام هذه المعلومات في عملك.
- طرق فئة في بايثون
- باستخدام دير () للحصول على جميع أساليب الطبقة
- السمة _ _ ديكت _ _ وتطبيقها
- باستخدام وظيفة فارس () للحصول على جميع أساليب الطبقة
- استخدام وحدة الفحص للحصول على جميع طرق الفصل
- سؤال وجواب
- كيف يمكنني معرفة كل أساليب فئة في بيثون?
- هل من الممكن الحصول على الأساليب العامة فقط من فئة?
- كيف يمكنني عرض قائمة بأساليب الفصل على الشاشة بتنسيق قابل للقراءة?
- هل من الممكن الحصول على جميع أساليب الطبقة الأم?
- كيف يمكنني معرفة كل الطرق من فئة إذا لم يكن لديك مثيل?
طرق فئة في بايثون
طرق فئة بايثون هي وظائف موصوفة داخل الفصل. يصفون سلوك الأشياء من هذه الفئة. عند إنشاء مثيل لفئة ، تصبح الأساليب متاحة ليتم استدعاؤها على هذا الكائن.
تنقسم طرق فئة بايثون إلى فئتين:
- طرق المثيل-وصف سلوك مثيل معين من فئة.
- طرق الفصل-وصف سلوك الفصل بأكمله ككل. لا ترتبط بمثيل معين من الفصل ويمكن استدعاؤها حتى بدون إنشاء مثيل.
يتم الإعلان عن طرق المثيل باستخدام الكلمة الأساسية ديف والمعلمة الأولى لها دائما مرجعها الخاص إلى المثيل الذاتي. يتيح لك ذلك الوصول إلى السمات والطرق الأخرى لهذا المثيل داخل الطريقة والعمل مع بيانات كائن محددة.
يتم الإعلان عن أساليب الفئة باستخدام الديكور @كلاسميثود والمعلمة الأولى دائما إشارة إلى فئة-كلس. لديهم فقط الوصول إلى سمات الفئة ، وليس سمات الكائن. يمكن استخدام هذه الأساليب ، على سبيل المثال ، لإنشاء مثيلات لفئة بطريقة خاصة أو لتغيير الخصائص العامة للفئة.
لمعرفة جميع أساليب فئة في بيثون ، يمكنك استخدام وظيفة دير (). يقوم بإرجاع قائمة بجميع الأسماء المحددة في مساحة الاسم التي تم تمريرها إليها كوسيطة. بالنسبة للفصل ، تحتاج إلى تمرير اسم الفصل نفسه. نتيجة لذلك ، نحصل على قائمة بأسماء جميع طرق هذه الفئة.
| الطريقة | الوصف |
|---|---|
| من طريقة المثال ديف(النفس ، المعلمات) | طريقة مثيل الفئة. يتم تعريفه داخل الفصل ولديه حق الوصول إلى سمات وطرق هذا المثيل. |
| ديف كلاس_ الأسلوب(كلس ، المعلمات) | طريقة الفصل. يتم تعريفه داخل الفئة باستخدام الديكور @ كلاسميثود. لديه حق الوصول فقط إلى سمات الفئة. |
باستخدام دير () للحصول على جميع الطرق
بدون وسيطات ، تقوم بإرجاع قائمة بأسماء مساحة الاسم المحلية الحالية.
مع اسم الفئة كحجة. على سبيل المثال:
فئة ميكلاس:
طريقة مواطن1 (ذاتي):
تمريرة
طريقة مواطن2 (ذاتي):
تمريرة
طريقة مواطن3 (ذاتي):
تمريرة
طرق = دير (ميكلاس)
print(methods)
:
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'method1', 'method2', 'method3']لاحظ أنه بالإضافة إلى طرق الفصل ، تحتوي القائمة أيضا على طرق وسمات خاصة للفئة يمكن أن تكون مفيدة عند العمل مع كائنات من هذه الفئة.
يسمح لك بالحصول على قائمة كاملة بأساليب الفصل دون الحاجة إلى سردها يدويا أو عرض وثائق الكود.
السمة _ _ ديكت _ _ وتطبيقها
السمة__ ديكت _ _ هي قاموس يحتوي على سمات كائن فئة أو مثيل لفئة في بايثون. يخزن هذا القاموس أسماء السمات كمفاتيح وقيمها كقيم.
تتيح لك سمة _ _ _ _ _ الوصول إلى سمات فئة أو مثيل فئة ، وكذلك تغيير قيمها. يكون هذا مفيدا بشكل خاص عندما لا تعرف مسبقا سمات كائن الفئة.
باستخدام سمة__ ديكت _ _ ، يمكنك الوصول إلى أسماء وقيم جميع سمات كائن فئة أو مثيل فئة. على سبيل المثال:
فئة ميكلاس:
مواطنه _ _ الحرف الأول__(النفس):
النفس.السمة 1 = "القيمة 1"
النفس.السمة 2 = "القيمة 2"
مثيل = ميكلاس ()
طباعة (مثيل.__ ديكت__)
نتيجة لتنفيذ الكود أعلاه ، سيتم إخراج القاموس {"السمة 1": "القيمة 1" ، "السمة 2": "القيمة 2"} ، والذي يحتوي على جميع سمات مثيل فئة المثيل.
يمكن أيضا استخدام السمة _ _ ديكت _ _ لتغيير سمات كائنات الفئة ديناميكيا. على سبيل المثال ، يمكنك إضافة سمة جديدة باستخدام الواجب:
على سبيل المثال.ميزة جديدة = "قيمة جديدة"
طباعة (مثيل.__ ديكت__)
ستتضمن نتيجة تنفيذ الكود أعلاه سمة جديدة في القاموس {"السمة 1": "القيمة 1" ، "السمة 2": "القيمة 2" ، "السمة الجديدة": "القيمة الجديدة"}.
باستخدام وظيفة فارس () للحصول على جميع أساليب الطبقة
تقوم الدالة() بإرجاع قاموس يحتوي على جميع سمات وطرق الكائن. للحصول على طرق الفصل فقط ، تحتاج إلى تحليل قيم القاموس وتصفية تلك الوظائف فقط.
مثال على استخدام وظيفة فارس () للحصول على جميع أساليب فئة:
فئة ميكلاس:
مواطنه _ _ الحرف الأول__(النفس):
النفس.السمة = "القيمة"
طريقة مواطن_واحد (ذاتي):
إرجاع "الطريقة الأولى"
طريقة مواطن_اثنين (ذاتي):
عودة "الطريقة الثانية"
# إنشاء مثيل من الطبقة
ماي_وبجيكت = ميكلاس()
# الحصول على جميع أساليب الفصل
طرق = [طريقة لطريقة في فارس_كائن).القيم () إذا قابل للاستدعاء (طريقة)]
في هذا المثال ، قمنا بإنشاء فئة ميكلاس مع طريقتين (طريقة واحدة وطريقة اثنين) وسمة واحدة (السمة). ثم أنشأنا مثيل من فئة ماي_وبجيكت واستخدمنا وظيفة فارس () للحصول على جميع سمات وأساليب الكائن. نتيجة لذلك ، حصلنا على قائمة طرق تحتوي فقط على طرق الفصل.
لاحظ أن وظيفة فارس () ترجع القاموس ، لذلك نستخدم طريقة القيم () للحصول على قيم القاموس. ثم نستخدم مولد القائمة لتصفية الطرق فقط (باستخدام الوظيفة القابلة للاستدعاء ()).
وبالتالي ، فإن وظيفة فارس () يجعل من السهل الحصول على جميع أساليب فئة في بيثون.
استخدام وحدة الفحص للحصول على جميع طرق الفصل
للحصول على قائمة بجميع طرق الفصل في بايثون ، يمكنك استخدام وحدة الفحص. يوفر أدوات مساعدة متنوعة لفحص الأشياء واستخراج المعلومات عنها.
أولا ، تحتاج إلى استيراد الوحدة:
فحص الاستيراد
ثم ، يمكنك استخدام وظيفة جيتممبرز () من وحدة فحص للحصول على قائمة من سمات الطبقة جنبا إلى جنب مع قيمها. باستخدام التفتيش.مرشح إسفونكتيون ، يمكنك فقط الحصول على أساليب الطبقة:
فئة ميكلاس:
طريقة مواطن1 (ذاتي):
تمريرة
طريقة مواطن2 (ذاتي):
تمريرة
طرق = فحص.جيتميمبرس (ميكلاس ، تفقد.إسفونكتيون)
تقوم الدالة جيتممبرس() بإرجاع قائمة من الصفوف ، حيث تحتوي كل مجموعة على اسم السمة وقيمتها. للحصول على أسماء الطرق فقط ، يمكنك استخدام منشئ القائمة:
اسم الأسلوب = [اسم الاسم ، القيمة في الأساليب]
تحتوي قائمة أسماء الطرق الآن على جميع أسماء طرق فئة الميكلاس. يمكن استخدامها ، على سبيل المثال ، لاستدعاء الأساليب أو تحليلها ديناميكيا.
مثال على الكود الكامل:
فحص الاستيراد
فئة ميكلاس:
طريقة مواطن1 (ذاتي):
تمريرة
طريقة مواطن2 (ذاتي):
تمريرة
طرق = فحص.جيتميمبرس (ميكلاس ، تفقد.إسفونكتيون)
اسم الأسلوب = [اسم الاسم ، القيمة في الأساليب]
طباعة (الأسماء_الأسماء)
الناتج:
['الطريقة 1' ، 'الطريقة 2']
الآن أنت تعرف كيفية استخدام وحدة فحص للحصول على جميع أساليب فئة في بيثون. يمكن أن يكون هذا مفيدا ، على سبيل المثال ، لتصحيح الأخطاء أو تحليلها أو اختبارها تلقائيا.
سؤال وجواب
كيف يمكنني معرفة كل أساليب فئة في بيثون?
لمعرفة جميع أساليب فئة في بيثون ، يمكنك استخدام المدمج في دير () وظيفة. يقوم بإرجاع قائمة بأسماء جميع سمات وطرق الكائن. للحصول على طرق فقط ، يمكنك استخدام وظيفة التصفية () والتحقق من أن اسم السمة هو وظيفة.
هل من الممكن الحصول على الأساليب العامة فقط من فئة?
نعم ، يمكنك فقط الحصول على الطرق العامة للفئة باستخدام وظيفة التصفية (). لا تحتوي بايثون على معدل وصول صريح للطرق ، لكن الاتفاقية تنص على أن الطرق التي تبدأ بشرطة سفلية (_) تعتبر محمية ، والطرق التي تبدأ بشرطتين سفليتين (__) تعتبر خاصة. لذلك ، من خلال تصفية الطرق بأسمائها ، يمكنك الحصول على الطرق العامة فقط.
كيف يمكنني عرض قائمة بأساليب الفصل على الشاشة بتنسيق قابل للقراءة?
لعرض قائمة بأساليب الفصل على الشاشة بتنسيق قابل للقراءة ، يمكنك استخدام ملف للحلقة. اذهبوا من خلال جميع الأساليب وطباعة أسمائهم واحدا تلو الآخر.
هل من الممكن الحصول على جميع أساليب الطبقة الأم?
نعم ، يمكنك الحصول على جميع طرق الفصل الأصل. للقيام بذلك ، استخدم وظيفة دير() على كائن الفئة الأصل. ستحتوي القائمة الناتجة على أسماء جميع سمات وطرق الفئة الأصل ، بما في ذلك طرقها.
كيف يمكنني معرفة كل الطرق من فئة إذا لم يكن لديك مثيل?
إذا لم يكن لدى الفئة مثيل ، فلا يمكنك استخدام وظيفة دير() على كائن الفئة. بدلا من ذلك ، يمكنك استخدام المدمج في فارس() وظيفة ، والتي ترجع القاموس مع سمات وقيم السمة للكائن. مجرد تمرير الطبقة إلى فارس () وظيفة والحصول على القاموس ، ثم استخدام أساليب القاموس للحصول على أساليب الطبقة فقط.