ahmed1990 نشر 18 أكتوبر 2015 أرسل تقرير نشر 18 أكتوبر 2015 أريد أن أقوم باستدعاء توابع صنف الأب من الصنف الابن، هنالك طريقة لفعل ذلك في الجافا والبيرل عن طريق استخدام super فهل توجد طريقة لفعل ذلك في بايثون؟ اقتباس
0 هشام رزق الله نشر 18 أكتوبر 2015 أرسل تقرير نشر 18 أكتوبر 2015 توجد في بايثون أيضا دالة 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() المصدر اقتباس
السؤال
ahmed1990
أريد أن أقوم باستدعاء توابع صنف الأب من الصنف الابن، هنالك طريقة لفعل ذلك في الجافا والبيرل عن طريق استخدام super فهل توجد طريقة لفعل ذلك في بايثون؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.