آشنایی با مفاهیم و ویژگیهای پایه شیگرایی
جلسات دوره
مهدی عباسی
مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و .... مشاهده رزومه
مفاهیم پایه شی گرایی در پایتون (OOP in Python)
همانطور که در درس قبلی از آموزش پایتون خدمتتان گفتیم، مفاهیم شی گرایی در برنامه نویسی مدرن بسیار حائز اهمیت است و ما قصد داریم با ارائه درس های کابردی شما را در این مسیر حرفه ای کنیم.
شی گرایی در پایتون، گونه ای از برنامه نویسی است که ساختار اصلی اجزای آن اشیا می باشند. در مفاهیم شی گرایی در پایتون، داده ها و توابع آن ها در قالبی به نام شی در کنار یکدیگر قرار می گیرند و یک واحد را تشکیل می دهند و نسبت به محیط اطاف خود کپسوله می شوند.
شی گرایی و اجزای تشکیل دهنده
شی گرایی در پایتون از اجزا مختلفی تشکیل شده است که به شرح زیر می باشد:
کلاس (class)
کلاس را نوع خاصی از آرایه می دانند. کلاس این امکان را فراهم می کند که تعداد زیادی المان برای یک شی جدید ذخیره شده و با یک نام مشترک ایجاد شود. کلاس تمامی جزئیات درباره یک شی را در بر دارد. رنگ، نام، اندازه و ... همگی می توانند ویژگی یک شی و جزو کلاس باشند.
در مثال زیر یک کلاس به نام person ایجاد کرده ایم و به وسیله آن نام و سن را نمایش می دهیم:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Rose", 20)
print(p1.name)
print(p1.age)
وراثت (Inheritance)
وراثت یکی از مباحث بسیار مهم شی گرایی در پایتون است. هر شی موجود در برنامه یک نمونه از کلاس است. هر کلاس می تواند از کلاس های دیگر مشتق شود و خواص و ویژگی های آن ها را به ارث ببرد.
مزیت ارث بری در پایتون این است که شما دیگر نیازی به چندباره نویسی کد ها ندارید و می توانید کد ها را بدون ویرایش استفاده کنید. به کلاس مشتق شده از یک کلاس دیگر کلاس فرزند گفته می شود. به کلاسی که از آن مشتق گرفته می شود نیز کلاس والد گفته می شود.
مثال زیر یک نمونه از وراثت در پایتون است:
class Animal:
def speak(self):
print("Animal Speaking")
#child class Dog inherits the base class Animal
class Dog(Animal):
def bark(self):
print("dog barking")
d = Dog()
d.bark()
d.speak()
عبارات زیر خروجی این قطعه کد می باشد:
Animal Speaking
dog barking
Animal speaking
کپسوله سازی (Encapsulation)
با استفاده از کپسوله سازی در شی گرایی در پایتون، می توانیم دسترسی به متد ها و متغیر ها را محدود کنیم و آن ها را از دید دیگران پنهان می کنیم. با استفاده از کپسوله سازی در پایتون، از ویرایش مستقیم کد ها جلوگیری می کنیم.
یک کلاس نمونه ای از کپسوله سازی است، زیرا تمام داده هایی که توابع عضو، متغیر ها و ... را کپسوله سازی می کند. از آن جایی که ما دسترسی به اصلاح کننده را در زبان برنامه نویسی پایتون نداریم، پس از روش های مختلفی برای کنترل دسترسی متغیر ها استفاده خواهیم کرد.
قطعه کد زیر یک نمونه از کپسوله سازی در شی گرایی در پایتون است:
lass Person:
def __init__(self, name, age=0):
self.name = name
self.age = age
def display(self):
print(self.name)
print(self.age)
person = Person('Mehdi', 44)
#accessing using class method
person.display()
#accessing directly from outside
print(person.name)
print(person.age)
خروجی این کد به صورت زیر است:
Mehdi
44
Mehdi
44
چند ریختی (polymorphism)
چندریختی نیز یکی دیگر از مباحث شی گرایی در پایتون است. به وسیله چند ریختی در پایتون، متد هایی را در کلاس فرزند تعریف می کنیم که همه آن ها همنام با کلاس والد هستند. با استفاده از چند ریختی می توان متدی را در کلاس فرزند که از کلاس والد به ارث برده است را تغییر داد.
در ادامه یک مثال ساده از چند ریختی در پایتون را آورده ایم:
>>>4+5
9
>>>”4”+”5”
45
>>>”ab”+”cd”
abcd
در مثال بالا می بینیم که عملگر جمع به روش های مختلفی استفاده شده است.
در این درس به مفاهیم پایه شی گرایی در پایتون پرداختیم. با مباحث کپسوله سازی، چند ریختی و کلاس ها در پایتون آشنا شدیم و متوجه شدیم که این موارد مهم ترین موارد از مبحث شی گرایی در پایتون است.
اگر از این درس استفاده کردید و آن را دوست داشتید، نظراتتان را با ما به اشتراک بگذارید و همچنین این درس را برای دوستانتان بفرستید تا آن ها نیز استفاده کنند.
در درس بعد به مبحث بسیار مهم شی گرایی می پردازیم. برای درک عمیق مبحث شی گرایی در پایتون و آمادگی برای درس بعد توصیه می کنیم فیلم درس در این صفحه را مشاهده کنید.
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.