مفاهیم پایه شی‌گرایی (OOP) در پایتون: کلاس و شیء

1

مفاهیم پایه شی‌گرایی (OOP) در پایتون: کلاس و شیء

برنامه‌نویسی شی‌گرا (Object-Oriented Programming یا به اختصار OOP) یکی از قدرتمندترین و پرکاربردترین الگوهای برنامه‌نویسی در دنیای نرم‌افزار است. پایتون به عنوان یک زبان سطح بالا، پشتیبانی بسیار جامع و قدرتمندی از این الگو ارائه می‌دهد. اگر می‌خواهید کدهایی تمیزتر، ساختاریافته‌تر و قابل توسعه بنویسید، یادگیری شی‌گرایی کاملاً ضروری است. در این مقاله از سایت پای شو، قصد داریم به زبان کاملاً ساده و کاربردی، دو مفهوم اساسی و پایه شی‌گرایی یعنی «کلاس» (Class) و «شیء» (Object) را بررسی کنیم.

شی‌گرایی (OOP) چیست؟

به زبان ساده، شی‌گرایی روشی است که در آن برنامه را بر اساس “اشیاء” مدل‌سازی می‌کنیم. در دنیای واقعی، اطراف ما پر از اشیاء است؛ مانند ماشین، لپ‌تاپ، انسان و غیره. هر شیء دارای دو ویژگی اصلی است:

  • صفات (Attributes): ویژگی‌های ظاهری یا درونی آن شیء (مانند رنگ ماشین، مدل، سرعت نهایی).

  • رفتارها (Methods): کارهایی که آن شیء می‌تواند انجام دهد (مانند روشن شدن ماشین، ترمز گرفتن، بوق زدن).

در شی‌گرایی پایتون نیز ما دقیقاً همین الگو را پیاده‌سازی می‌کنیم تا کدهایمان به دنیای واقعی نزدیک‌تر شوند و مدیریت آن‌ها منطقی‌تر باشد.

کلاس (Class) چیست؟

کلاس را می‌توانید مانند یک نقشه ساخت یا قالب تصور کنید. کلاس به تنهایی وجود فیزیکی (در حافظه به عنوان یک موجودیت مستقل داده‌ای با مقادیر خاص) ندارد، بلکه فقط تعریف می‌کند که یک شیء باید چه ویژگی‌ها و رفتارهایی داشته باشد.

برای مثال، “نقشه ساخت یک خودرو” یک کلاس است. این نقشه به ما می‌گوید که خودرو باید ۴ چرخ، یک فرمان و یک موتور داشته باشد، اما خودش یک خودروی واقعی نیست که بتوانید سوار آن شوید! برای تعریف کلاس در پایتون از کلمه کلیدی class استفاده می‌کنیم.

شیء (Object) چیست؟

شیء یا نمونه (Instance)، تجسم واقعی و ساخته شده از روی یک کلاس است. اگر کلاس همان نقشه خودرو باشد، شیء همان خودروی واقعی است که در کارخانه ساخته شده و اکنون در خیابان حرکت می‌کند. از روی یک نقشه (کلاس)، می‌توانیم صدها خودروی واقعی (شیء) با رنگ‌ها و مدل‌های مختلف بسازیم که هر کدام هویت مستقلی دارند.

آموزش ساخت کلاس و شیء در پایتون

برای درک بهتر، بیایید یک کلاس ساده به نام Car بسازیم و سپس از روی آن یک شیء ایجاد کنیم.

Python

class Car:
    # متد سازنده برای مقداردهی اولیه ویژگی‌ها
    def __init__(self, brand, color):
        self.brand = brand  # صفت برند
        self.color = color  # صفت رنگ
        
    # یک متد (رفتار) برای کلاس
    def start_engine(self):
        print(f"خودروی {self.brand} با رنگ {self.color} روشن شد!")

# ساخت یک شیء (Object) از روی کلاس Car
my_car = Car("تویوتا", "سفید")
my_second_car = Car("بنز", "مشکی")

# فراخوانی متدها
my_car.start_engine()
my_second_car.start_engine()

بررسی مفاهیم مهم در کد بالا:

  1. متد __init__: این متد که به آن متد سازنده (Constructor) می‌گویند، بلافاصله پس از ساخته شدن یک شیء از کلاس، به صورت خودکار اجرا می‌شود. وظیفه اصلی آن، مقداردهی اولیه به صفات (Attributes) شیء است.

  2. کلمه کلیدی self: در پایتون، self به خود شیء ایجاد شده اشاره می‌کند. با استفاده از self ما به ویژگی‌ها و متدهای داخل کلاس دسترسی پیدا می‌کنیم. هنگام فراخوانی متدها، پایتون به صورت خودکار شیء را به عنوان اولین آرگومان (یعنی همان self) به متد ارسال می‌کند و نیازی نیست شما آن را به صورت دستی وارد کنید.

چرا باید از شی‌گرایی استفاده کنیم؟

  • جلوگیری از کدهای تکراری (DRY): با تعریف یک کلاس، می‌توانید بارها و بارها اشیاء مختلفی از روی آن بسازید بدون اینکه نیاز باشد کدهای مشابه را بازنویسی کنید.

  • ساختاریافتگی کد: کدهای شی‌گرا خوانایی بالاتری دارند و مدیریت، عیب‌یابی و توسعه پروژه‌های بزرگ را بسیار آسان‌تر می‌کنند.

  • امنیت داده‌ها: با استفاده از مفاهیمی مانند کپسوله‌سازی (Encapsulation) در شی‌گرایی، می‌توان دسترسی مستقیم به داده‌های حساس را محدود کرد.

جمع‌بندی

در این آموزش از پای شو یاد گرفتیم که کلاس‌ها نقشه‌هایی برای ساخت داده‌ها هستند و اشیاء، موجودیت‌های واقعی ساخته شده از روی این نقشه‌ها می‌باشند. درک درست تفاوت بین کلاس و شیء، اولین و مهم‌ترین قدم برای تسلط بر برنامه‌نویسی شی‌گرا در پایتون است. با تمرین و ساخت کلاس‌های مختلف برای موجودیت‌های دنیای واقعی، می‌توانید این مفهوم را به صورت عمیق‌تری درک کنید.

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *