"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية استدعاء وظيفة أخرى من وظيفة واحدة داخل فئة في بيثون؟

كيفية استدعاء وظيفة أخرى من وظيفة واحدة داخل فئة في بيثون؟

نشر في 2025-05-02
تصفح:650

How Do I Call One Class Function from Another Within the Same Class in Python?

وظائف الاتصال ضمن الفئات: نهج عملي

في البرمجة الموجهة للكائنات ، تغلف الفئات البيانات والوظائف ، وتنظيمها في كيانات منطقية. عندما تحتاج إلى إجراء عمليات على هذه الكائنات ، يمكنك تحديد وظائف الأعضاء داخل الفصل. ومع ذلك ، ليس من الواضح دائمًا كيفية استدعاء وظيفة واحدة من داخل آخر عندما يتم تعريف كلاهما في نفس الفئة.

المشكلة: Def Disttopoint (Self ، P): # حساب المسافة باستخدام نظرية فيثاغوراس def isNear (Self ، p): # كيف نسمي disttopoint من isNear؟

في هذا المثال ، نريد تحديد ما إذا كانت النقطة قريبة من نقطة أخرى باستخدام وظيفة disttopoint. كيف نستدعي هذه الوظيفة ضمن دالة ISNEAR؟

class Coordinates:
    def distToPoint(self, p):
        # Calculate distance using Pythagoras' theorem

    def isNear(self, p):
        # How do we call distToPoint from isNear?
الحل:

للاتصال بوظيفة عضو داخل الفئة نفسها ، نحتاج إلى استخدام مثيل الفئة (المشار إليها بالذات عن طريق الاتفاقية) للوصول إلى أساليبها. ستبدو دالة ISNEAR المصححة مثل هذا: إحداثيات الفئة: Def Disttopoint (Self ، P): # حساب المسافة باستخدام نظرية فيثاغوراس def isNear (Self ، p): self.disttopoint (p) # تابع مع العمليات الأخرى

عن طريق إضافة الذات قبل disttopoint ، نشير صراحةً إلى أننا نريد أن ندعو وظيفة العضو disttopoint على مثيل Self لفئة الإحداثيات.

class Coordinates:
    def distToPoint(self, p):
        # Calculate distance using Pythagoras' theorem

    def isNear(self, p):
        self.distToPoint(p)
        # Continue with other operations

إحداثيات = إحداثيات () COVESINATES.ISNEAR (other_point)

سيحسب هذا المسافة بين إحداثيات المثيل والأخرى المحددة باستخدام دالة disttopoint.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3