اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

توجد في بايثون أيضا دالة super كما في اللغات الأخرى وتعمل تقريبا بنفس الطريقة وصياغتها العامة كالتالي:

super(type[, object-or-type])

هذه الدالة مفيدة جدا عند حاجتك إلى الوصول إلى توابع موروثة تم تجاوزها في الصنف. ترتيب البحث هو نفسه الذي تستخدمه دالة getattr() إلا أنه يتم تجاوز النوع.
مثال بسيط على استخدام super:

class Foo(Bar):
    def baz(self, arg):
        return super(Foo, self).baz(arg)

ملاحظة: يمكنك استخدام الدالةsuper فقط في أصناف الأساليب الجديدة.
كما أنصحك أيضا باستخدام CLASS.__bases__ كما في المثال التالي:

class A:
   def __init__(self):
        print "I am Class %s"%self.__class__.__name__
        for parentClass in self.__class__.__bases__:
              print "   I am inherited from:",parentClass.__name__
              #parentClass.foo(self) <- call parents function with self as first param
class B(A):pass
class C(B):pass
a,b,c = A(),B(),C()

المصدر

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...