جلسه ۴۸: سینتکس و اصطلاحات در پایتون

شما در این درس با سینتکس و نوشتار وراثت و همچنین اصطلاحات این زمینه آشنا میشوید.
اصطلاحات
در وراثت، بجای اینکه یک کلاس جدید بر اساس کلاس موجود بسازیم، از اصطلاحات زیر استفاده میکنیم:
- کلاس
Parent
یاSuper
یاBase
: این کلاس به ما این امکان را میدهد تا از خصوصیاتpublic
آن در کلاس دیگر استفاده کنیم. - کلاس
Child
یاSub
یاDerived
: این کلاس، کلاسی است که قرار است از کلاس دیگر خصوصیاتی را به ارث ببرد.
(یک کلاس child
همه ویژگیهای Public
از کلاس parent
را دارد)
Syntax
در پایتون، پیادهسازی وراثت خیلی شبیه کلاسهای پایه است. که در شکل زیر این شیوهنوشتار را میبینید:
class ParentClass:
# attributes of the parent class
class ChildClass(ParentClass):
# attributes of the child class
اسم کلاس parent
در جلوی کلاس child
و داخل پرانتز نوشته میشود. که در بدنه child
میتوان از parent
استفاده کرد.
مثال
حال مثالی را میزنیم با یک کلاس parent
با نام vehicle
و یک کلاس child
با اسم Car
، که این کلاس از کلاس vehicle
ارث بری میکند. در نظر بگیرید که ماشین یک وسیله نقلیه است، بنابراین میتوانیم یک رابطه ارث بری بین این دو داشته باشیم.
class Vehicle:
def __init__(self, make, color, model):
self.make = make
self.color = color
self.model = model
def printDetails(self):
print("Manufacturer:", self.make)
print("Color:", self.color)
print("Model:", self.model)
class Car(Vehicle):
def __init__(self, make, color, model, doors):
# calling the constructor from parent class
Vehicle.__init__(self, make, color, model)
self.doors = doors
def printCarDetails(self):
self.printDetails()
print("Doors:", self.doors)
obj1 = Car("Suzuki", "Grey", "2015", 4)
obj1.printCarDetails()
توضیحات
- در کدبالا و در خط شماره ۱، یک کلاس
parent
با نامVehicle
تعریف شدهاست و در خط ۱۳ یک کلاسcar
به صورتchild
تعریف شدهاست. - کلاس
car
همه خصوصیات و متدهای کلاسvehicle
را به ارث میبرد و به آنها دسترسی دارد و میتواند آنها را تغییر دهد. - به عنوان مثال در خط ۲۰ از کلاس
car
، ما متدprintDetails
را فراخوانی کردیم، که در کلاسVehicle
تعریف شدهاست.
قبل از آنکه وراثت را با جزئیات بیشتر بررسی کنیم، یک موضوع دیگری به نام ()super
را در درس بعد بررسی میکنیم.