Kahibaro
Discord Login Register

فصل ۱۳: برنامه‌نویسی شی‌گرا (OOP)

مقدمهٔ برنامه‌نویسی شی‌گرا در پایتون

در فصل‌های قبل با متغیر، تابع، لیست، دیکشنری و ... کار کردید و برنامه‌های ساده نوشتید. در این فصل با یک سبک مهم برنامه‌نویسی به نام برنامه‌نویسی شی‌گرا (Object-Oriented Programming یا به‌اختصار OOP) آشنا می‌شوید که در پروژه‌های واقعی و بزرگ بسیار رایج است.

در این فصل به این بخش‌ها می‌پردازیم:

هدف این فصل این است که:

در ادامه، هر زیرعنوانِ فصل ۱۳ محتوای مخصوص خود را خواهد داشت و اینجا فقط یک تصویر کلی و ارتباط بین این مفاهیم را می‌سازیم تا در زیرفصل‌ها به‌تدریج عمیق‌تر شوید.

چرا سراغ برنامه‌نویسی شی‌گرا می‌رویم؟

وقتی برنامه‌ها کوچک هستند، ترکیبی از متغیرها، توابع و چند لیست و دیکشنری کفایت می‌کند. اما وقتی:

مدیریت کد سخت، گیج‌کننده و پر از اشتباه می‌شود.

برنامه‌نویسی شی‌گرا کمک می‌کند:

  1. داده و رفتار مرتبط به هم را کنار هم نگه دارید.
    • داده = ویژگی‌ها (مثل name, age)
    • رفتار = متدها (مثل bark(), walk())
  2. کد را شبیه دنیای واقعی مدل کنید.
    به‌جای پخش شدن متغیرها و توابع، می‌گویید: «من یک Dog دارم که نام، سن، نژاد و رفتارهایی مثل واق‌واق کردن و دویدن دارد.»
  3. ساختار بدهید، نه فقط تکه‌کد.
    کلاس‌ها مثل «قالب» یا «نقشه» هستند و اشیاء مثل «نمونه‌های واقعی» آن قالب.

این ایده‌ها در زیرفصل «برنامه‌نویسی شی‌گرا چیست؟» با مثال‌های ساده‌تر و مقایسه با کدی که کلاس ندارد توضیح داده می‌شوند.

تصویر کلی: کلاس، شیء، ویژگی و متد

در شی‌گرایی، چهار واژه‌ی اصلی را دائماً می‌بینید:

این مفاهیم در زیرفصل‌های:

نگاهی سریع به شکل کلی یک کلاس

ساختار بسیار ساده‌ی یک کلاس در پایتون شبیه این است:

class Person:
    def __init__(self, name, age):
        self.name = name   # ویژگی
        self.age = age     # ویژگی
    def say_hello(self):   # متد
        print("سلام، من", self.name, "هستم.")

و ساختن شیء از آن:

p1 = Person("علی", 20)
p1.say_hello()

در زیرفصل‌ها خواهید دید:

در این فصل اصلی، فقط تصویر کلی را در ذهن نگه دارید:
کلاس = قالب و شیء = چیز واقعی ساخته شده از آن قالب.

`__init__` چیست و چرا مهم است؟

در شی‌گرایی با متدی ویژه‌ای زیاد روبه‌رو می‌شوید: __init__.

نکته‌های مهم و کلی دربارهٔ آن (جزئیات در زیرفصل خودش می‌آید):

مثال تصویری:

class Car:
    def __init__(self, brand, year):
        self.brand = brand
        self.year = year
c = Car("Toyota", 2020)  # اینجا __init__ خودکار اجرا می‌شود

در زیرفصل «متد __init__» تمرین‌ها و الگوهای رایج‌تری را خواهید دید.

کپسوله‌سازی به‌زبان ساده

یکی از ایده‌های مهم در OOP، کپسوله‌سازی است.

به‌صورت ساده:

در پایتون:

این موضوع در زیرفصل «کپسوله‌سازی» با مثال‌هایی مثل:

به‌صورت عملی نشان داده خواهد شد.

ایدهٔ وراثت (مقدماتی)

وراثت راهی است برای این‌که:

این کمک می‌کند:

مثالِ فقط برای دیدن شکل کلی (توضیح کامل در زیرفصل «وراثت (مقدماتی)»):

class Animal:
    def speak(self):
        print("حیوانی صدا می‌کند")
class Dog(Animal):
    def speak(self):
        print("واق واق!")
d = Dog()
d.speak()   # واق واق!

اینجا Dog از Animal ارث‌بری می‌کند و رفتار speak را مخصوص خودش تعریف می‌کند.

OOP در کنار چیزهایی که از قبل می‌دانید

چند نکته برای این‌که این فصل را در ذهن‌تان در کنار فصل‌های قبلی قرار دهید:

در زیرفصل‌های «مثال‌های سادهٔ شی‌گرا» خواهید دید:

چطور از این فصل بیشترین استفاده را ببرید؟

برای درک OOP، فقط خواندن کافی نیست؛ باید کلاس بسازید و با آن بازی کنید:

در پایان این فصل، باید بتوانید:

در زیرعنوان‌های بعدی فصل ۱۳، هرکدام از این مفاهیم با جزئیات و تمرین‌های مشخص یاد گرفته خواهند شد.

Views: 7

Comments

Please login to add a comment.

Don't have an account? Register now!