Learn Python
Open in Telegram
﷽ • Welcome to 𝙿𝚈𝚃𝙷𝙾𝙽 Channel • • Content : - Python Scripts - Solutions problems . - Distribution of Python Tools . - Education Python . • Owner › @GDO00BOT . • ChaT › @PY3_Learn .
Show more1 319
Subscribers
+524 hours
+77 days
+5230 days
Posts Archive
1 319
⌯ أعاده التعريف ( Overriding ) :
ـ = = = = = = = = = = = = = = =
• هي تعريف الداله التي ورثها الكلاس الابن من الكلاس الاب من جديد ، وتتم عبر داله جديده تحمل نفس الداله الموروثه بالضبط ونفس البارمترات ولاكن الأوامر المتضمنه لها فيها تكون مختلفه ، وهذا يساعدك في توظيف الداله حسب احتياجك الخاص وليس كما تم كتابتها ،
⌯ شروط أعاده التعريف :
ـ = = = = = = = = = = =
1 - لايمكنك اعاده تعريف داله موجوده في النظام اواله مخفيه ، لانك لاتستطيع الاطلاع على محتواها .
2 - عدد البارميترات وأنواعها تكون مطابقه للداله القديمة .
class A:
def country(self):
print("YeMeN .")
class YE(A):
pass
class B(A):
def country(self):
print("UK .")
class C(A):
def country(self):
print("IRAQ .")
a = YE()
b = B()
c = C()
a.country()
b.country()
c.country()
• كما تلاحـظ لم يتم طباعه محتوى A في كل الكلاسلات بالرغم من أننا قمنا بوراثة خواصها ، وهذا لأن مفسر بايثون يبحث عن الداله التي تم كتابتها من قبل المبرمج وأن لم يجدها سيقوم بأخذ الداله من الكلاس الأب ، وهذا يحدث خلل لذالك سنقوم باستخدام الداله ()super التي شرحناها سابقاً ، لتجنب تضارب الأسماء ، والتكرار ، وغيرها ..
class Person:
def init(self, name,age):
self.name = name
self.age = age
class student(Person):
def init(self, name, age, gpa):
super().init(name, age)
self.gpa = gpa
def show(self):
print(
" Name : %s \n" % str(self.name),
"Age : %s \n" % str(self.age),
"GPA : %s \n" % str(self.gpa)
)
obj = student(name="GDO",age=18,gpa="3.9")
obj.show()
ـ = = = = = = = = = = = = = = = = = = =1 319
~ الملف يوضح أشكال الاستدعاء من الملفات ،
~ الملف ()_ _init_ _ ، هو الملف التشغيل .
1 319
او :
class A:
def init(self,x,y):
self.x = x
self.y = y
def print_x(self):
return "X = %i"%self.x
def print_y(self):
return "Y = %i"%self.y
def out(self):
print(self.print_x())
print(self.print_y())
class B(A):
def add(self):
return "X + Y = %i"%(self.x + self.y)
def sub(self):
return "X - Y = %s"%(self.x - self.y)
def div(self):
return "X ÷ Y = %s"%(self.x//self.y)
def out(self):
super().out()
print(self.add())
print(self.sub())
print(self.div())
print(" -- Class A -- ")
obj = A(10,5)
obj.out()
print(" -- Class B -- ")
obj_1 = B(10,5)
obj_1.out()
ـ = = = = = = = =
⌯ ملاحظات :
• الكلاس الذي يرث من كلاس آخر يسمىٰ الكلاس الابن ( Subclass , Extended , child class ) ،
• الكلاس الذي يوٌّرث خصائصه ومحتوياته الىٰ كلاس آخر يسمىٰ الكلاس الاب ( Superclass , Base Class , Perant Class ) ،
• عند عمليه الوراثة فأن الكلاس الابن يأخذ جميع خصائص الكلاس الآب ماعدا قيم البراميترات المرسله من الداله ()_ _init_ _ ،
ـ = = = = = = = = = = = = = = = = = = =1 319
⌯ الوراثـة ( inheritance ) :
ـ = = = = = = = = = = = = =
• هي بشكل عام تضمين او انشاء كلاس من محتوىٰ كلاس آخر ، أي ان هناك كلاس يمكنه وراثه خصائص ( دوال - وثوابت ) من كلاس آخر ، وهو مهم جداً في مجال البرمجة كائنية التوجة ( OOP ) ، يساعد المبرمج في كتابه الكائنات بشكل اسرع وعدم تكرار الكلاس مره اخر ، لكي نقوم باوراثه كلاس معين او خصائص معينه نقوم بارسال اسم الكلاس كـ باراميتر للكلاس الجديد ،
class A:
x = 10
class B(A):
pass
obj = B()
print("X =",obj.x)
⌯ أشكال الوراثــة :
ـ = = = = = = = =
• وراثة فردية : وهي أن يرث كلاس خصائص كلاس واحد فقط ،
class A:
x = 10
def function(self):
print(" Welcome in Class A .")
class B(A):
pass
obj = B()
print("X =",obj.x)
obj.function()
ـ = = = = = = = = = = = = = = = = = = =
• وراثة متتالية : هو أن يرث الكلاس خصائص كلاس معين يملك خصائص كلاس آخر ،
class A:
def function_a(self):
print(" Welcome in Class A.")
class B(A):
def function_b(self):
print(" Welcome in Class B.")
class C(B):
def function_c(self):
print(" Welcome in Class C.")
obj = C()
obj.function_a()
obj.function_b()
obj.function_c()
ـ = = = = = = = = = = = = = = = = = = =
• وراثة هرميه : عدة كلاسات يرثون خصائص كلاس واحد ،
class A:
def function_a(self):
print(" Welcome in Class A.")
class B(A):
def function_b(self):
print(" Welcome in Class B.")
class C(A):
def function_c(self):
print(" Welcome in Class C.")
obj = B()
obj.function_a()
obj.function_b()
obj_1 = C()
obj_1.function_a()
obj_1.function_c()
ـ = = = = = = = = = = = = = = = = = = =
• وراثة متعددة : هو أن يرث الكلاس خصائص من عدة كلاسات ،
class A:
def function_a(self):
print(" Welcome in Class A.")
class B:
def function_b(self):
print(" Welcome in Class B.")
class C(A, B):
def function_c(self):
print(" Welcome in Class C.")
obj = C()
obj.function_a()
obj.function_b()
obj.function_c()
ـ = = = = = = = = = = = = = = =
• هناك مشاكل ستواجهنا عند وراثة خصائص كلاسات متعدده او متتالية وهي تضارب اسماء المتغيرات وقيمها والتغير فيها ، لن تلاحظ المشكله من ناحيه الكود بل من ناحيه التنفيذ وظهور قيم غير متوقعه ، وستكون النتيجه هي وراثة الكلاس الرئيسي ،
class A:
def function(self):
print(" Welcome In Class A .")
class B:
def function(self):
print(" Welcome in Class B .")
class C(A, B):
def main(self):
self.function()
run = C()
run.main()
~ مبدأ اخفاء البيانات ( Data Hiding ) :
ـ = = = = = = = = = = = = = = = = = =
• وهي تسميه المتغيرات او الدوال التي داخل الكائن او الكلاس باضافه اندرسكول ( _ ) الى بدايه الاسم حتى لايحصل تشوفه او تضارب في الاسماء ،
class A:
_x = 25
_y = 20
def print_x(self):
return "X = %i"%self._x
def print_y(self):
return "Y = %i"%self._y
def out(self):
print(self.print_x())
print(self.print_y())
class B(A):
def init(self):
self.x = 15
self.y = 10
def add(self):
return "X + Y = %i"%(self.x + self.y)
def sub(self):
return "X - Y = %s"%(self.x - self.y)
def div(self):
return "X ÷ Y = %s"%(self.x//self.y)
def out(self):
super().out()
print(self.add())
print(self.sub())
print(self.div())
print(" -- Class A -- ")
obj = A()
obj.out()
print(" -- Class B -- ")
obj_1 = B()
obj_1.out()
~ الدالــه ()super :
ـ = = = = = = = = =
• هي داله رئيسيه في البايثون جاهزة من قبل النظام ، تستخدم لوراثة جميع خصائص كلاس معين ،
class A:
def init(self):
self.x = 10
self.y = 5
def print_x(self):
return "X = %i"%self.x
def print_y(self):
return "Y = %i"%self.y
def out(self):
print(self.print_x())
print(self.print_y())
class B(A):
def add(self):
return "X + Y = %i"%(self.x + self.y)
def sub(self):
return "X - Y = %s"%(self.x - self.y)
def div(self):
return "X ÷ Y = %s"%(self.x//self.y)
def out(self):
super().out()
print(self.add())
print(self.sub())
print(self.div())
print(" -- Class A -- ")
obj = A()
obj.out()
print(" -- Class B -- ")
obj_1 = B()
obj_1.out()1 319
⌯ الوراثـة ( inheritance ) :
ـ = = = = = = = = = = = = =
• هي بشكل عام تضمين او انشاء كلاس من محتوىٰ كلاس آخر ، أي ان هناك كلاس يمكنه وراثه خصائص ( دوال - وثوابت ) من كلاس آخر ، وهو مهم جداً في مجال البرمجة كائنية التوجة ( OOP ) ، يساعد المبرمج في كتابه الكائنات بشكل اسرع وعدم تكرار الكلاس مره اخر ، لكي نقوم باوراثه كلاس معين او خصائص معينه نقوم بارسال اسم الكلاس كـ باراميتر للكلاس الجديد ،
class A:
x = 10
class B(A):
pass
obj = B()
print("X =",obj.x)
⌯ أشكال الوراثــة :
ـ = = = = = = = =
• وراثة فردية : وهي أن يرث كلاس خصائص كلاس واحد فقط ،
class A:
x = 10
def function(self):
print(" Welcome in Class A .")
class B(A):
pass
obj = B()
print("X =",obj.x)
obj.function()
ـ = = = = = = = = = = = = = = = = = = =
• وراثة متتالية : هو أن يرث الكلاس خصائص كلاس معين يملك خصائص كلاس آخر ،
class A:
def function_a(self):
print(" Welcome in Class A.")
class B(A):
def function_b(self):
print(" Welcome in Class B.")
class C(B):
def function_c(self):
print(" Welcome in Class C.")
obj = C()
obj.function_a()
obj.function_b()
obj.function_c()
ـ = = = = = = = = = = = = = = = = = = =
• وراثة هرميه : عدة كلاسات يرثون خصائص كلاس واحد ،
class A:
def function_a(self):
print(" Welcome in Class A.")
class B(A):
def function_b(self):
print(" Welcome in Class B.")
class C(A):
def function_c(self):
print(" Welcome in Class C.")
obj = B()
obj.function_a()
obj.function_b()
obj_1 = C()
obj_1.function_a()
obj_1.function_c()
ـ = = = = = = = = = = = = = = = = = = =
• وراثة متعددة : هو أن يرث الكلاس خصائص من عدة كلاسات ،
class A:
def function_a(self):
print(" Welcome in Class A.")
class B:
def function_b(self):
print(" Welcome in Class B.")
class C(A, B):
def function_c(self):
print(" Welcome in Class C.")
obj = C()
obj.function_a()
obj.function_b()
obj.function_c()
ـ = = = = = = = = = = = = = = =
• هناك مشاكل ستواجهنا عند وراثة خصائص كلاسات متعدده او متتالية وهي تضارب اسماء المتغيرات وقيمها والتغير فيها ، لن تلاحظ المشكله من ناحيه الكود بل من ناحيه التنفيذ وظهور قيم غير متوقعه ، وستكون النتيجه هي وراثة الكلاس الرئيسي ،
class A:
def function(self):
print(" Welcome In Class A .")
class B:
def function(self):
print(" Welcome in Class B .")
class C(A, B):
def main(self):
self.function()
run = C()
run.main()
~ مبدأ اخفاء البيانات ( Data Hiding ) :
ـ = = = = = = = = = = = = = = = = = =
• وهي تسميه المتغيرات او الدوال التي داخل الكائن او الكلاس باضافه اندرسكول ( _ ) الى بدايه الاسم حتى لايحصل تشوفه او تضارب في الاسماء ،
class A:
_x = 25
_y = 20
def print_x(self):
return "X = %i"%self._x
def print_y(self):
return "Y = %i"%self._y
def out(self):
print(self.print_x())
print(self.print_y())
class B(A):
def init(self):
self.x = 15
self.y = 10
def add(self):
return "X + Y = %i"%(self.x + self.y)
def sub(self):
return "X - Y = %s"%(self.x - self.y)
def div(self):
return "X ÷ Y = %s"%(self.x//self.y)
def out(self):
super().out()
print(self.add())
print(self.sub())
print(self.div())
print(" -- Class A -- ")
obj = A()
obj.out()
print(" -- Class B -- ")
obj_1 = B()
obj_1.out()
~ الدالــه ()super :
ـ = = = = = = = = =
• هي داله رئيسيه في البايثون جاهزة من قبل النظام ، تستخدم لوراثة جميع خصائص كلاس معين ،
class A:
def init(self):
self.x = 10
self.y = 5
def print_x(self):
return "X = %i"%self.x
def print_y(self):
return "Y = %i"%self.y
def out(self):
print(self.print_x())
print(self.print_y())
class B(A):
def add(self):
return "X + Y = %i"%(self.x + self.y)
def sub(self):
return "X - Y = %s"%(self.x - self.y)
def div(self):
return "X ÷ Y = %s"%(self.x//self.y)
def out(self):
super().out()
print(self.add())
print(self.sub())
print(self.div())
print(" -- Class A -- ")
obj = A()
obj.out()
print(" -- Class B -- ")
obj_1 = B()
obj_1.out()1 319
يلي عنده حساب تيك توك 80k او 75k او أعلى يجي خاص مقابلي او 20$ بايير او رشق انستا 60k يلي عنده تفضل خاص لو سمحت اذا كنت من جماعة سلم تستلم لا تجي 🙂💙 .
@Ahmad_x1n
