آشنایی کامل با کلاس‌ها در پایتون – شی‌گرایی، ساختار، وراثت و کاربردهای عملی

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

پایتونکلاسشی‌گراییوراثت

~3 min read · Updated Sep 16, 2025

مقدمه


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


تعریف کلاس در پایتون


برای تعریف یک کلاس از کلیدواژه class استفاده می‌کنیم:


class Person:
    pass

در مثال بالا، کلاس Person تعریف شده اما هنوز هیچ ویژگی یا رفتاری ندارد.


سازنده کلاس (__init__)


برای مقداردهی اولیه به ویژگی‌های کلاس، از متد __init__ استفاده می‌شود:


class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

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


ایجاد شی از کلاس


p1 = Person("Ali", 30)
print(p1.name)  # خروجی: Ali

با استفاده از کلاس، شی‌ای به نام p1 ساخته شده که ویژگی‌های خاص خود را دارد.


تعریف متدهای کلاس


متدها رفتارهایی هستند که به اشیاء کلاس نسبت داده می‌شوند:


class Person:
    def __init__(self, name):
        self.name = name

    def greet(self):
        print(f"Hello, my name is {self.name}")

p2 = Person("Sara")
p2.greet()  # خروجی: Hello, my name is Sara

وراثت در کلاس‌ها


با وراثت می‌توان کلاس جدیدی ساخت که ویژگی‌ها و رفتارهای کلاس والد را به ارث ببرد:


class Employee(Person):
    def __init__(self, name, salary):
        super().__init__(name)
        self.salary = salary

کلاس Employee از Person ارث‌بری کرده و ویژگی جدیدی به نام salary اضافه کرده است.


کپسوله‌سازی و سطح دسترسی


در پایتون، برای تعریف ویژگی‌های خصوصی از پیشوند _ یا __ استفاده می‌شود:


class BankAccount:
    def __init__(self, balance):
        self.__balance = balance

    def get_balance(self):
        return self.__balance

ویژگی __balance فقط از طریق متد get_balance قابل‌دسترسی است.


کلاس‌های کلاس‌متد و استاتیک‌متد


متدهای کلاس و استاتیک‌متدها با دکوریتورهای خاص تعریف می‌شوند:


class Math:
    @staticmethod
    def add(x, y):
        return x + y

    @classmethod
    def identity(cls):
        return cls.__name__

کاربردهای عملی کلاس‌ها



  • مدیریت کاربران در سیستم‌های احراز هویت

  • مدل‌سازی موجودیت‌ها در بازی‌ها یا اپلیکیشن‌ها

  • ساخت APIهای شی‌گرا با فریم‌ورک‌هایی مانند Django و FastAPI

  • کپسوله‌سازی منطق پیچیده در پروژه‌های بزرگ


جمع‌بندی


کلاس‌ها در پایتون ابزار قدرتمندی برای ساختاردهی به کد، مدیریت داده‌ها و پیاده‌سازی منطق شی‌گرا هستند. با یادگیری اصول کلاس، سازنده‌ها، وراثت، و متدها، می‌توان پروژه‌هایی مقیاس‌پذیر، قابل‌نگهداری و حرفه‌ای ایجاد کرد.


Written & researched by Dr. Shahin Siami

Related Articles

آشنایی کامل با دکوریتورها در پایتون – تزئین رفتار توابع با کدهای قابل‌استفاده مجدد

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

Continue

چندین نمونه کد

برای درک بهتر زبان پیاتون

Continue

راهنمای جامع دریافت ورودی متنی از کاربر در پایتون

در پایتون، دریافت ورودی از کاربر یکی از ابتدایی‌ترین اما کلیدی‌ترین قابلیت‌ها برای تعامل با کاربران است. این مقاله به بررسی دقیق تابع input()، نحوه تبدیل ورودی به انواع داده‌ای، استفاده در شرط‌ها و حلقه‌ها، و نکات امنیتی و عملی درباره فیلتر کردن و اعتبارسنجی ورودی می‌پردازد. همچنین مثال‌های متنوعی برای کاربردهای واقعی ارائه می‌گردد.

Continue

بررسی کامل تابع در پایتون: ساختار، انواع و کاربردها

comprehensive-guide-python-functiتوابع در پایتون از مهم‌ترین ابزارهای برنامه‌نویسی هستند که کد را ماژولار، قابل استفاده مجدد و خواناتر می‌سازند. این مقاله با معرفی ساختار تعریف تابع، تفاوت بین توابع Built-in و Custom، کاربرد آرگومان‌ها، مقدارهای بازگشتی، و مفاهیم پیشرفته مانند توابع بازگشتی و توابع لامبدا، درک جامعی از توانمندی‌های تابع در پایتون فراهم می‌کند.ons-structure-types-uses-fa

Continue

حلقه‌ها، ایتریتورها و کنترل جریان تکرار در پایتون

در پایتون، حلقه‌ها ابزاری کلیدی برای انجام عملیات تکراری هستند. حلقه‌های for برای تعداد مشخص و while برای تعداد نامشخص استفاده می‌شوند. با معرفی مفهوم ایتریتور، تابع input برای دریافت داده از کاربر، و توابعی مثل enumerate, zip, next, و shuffle، این مقاله درک جامعی از نحوه مدیریت و کنترل جریان تکرار در پایتون ارائه می‌دهد.

Continue

ساختارهای شرطی if و if-else در پایتون

در زبان پایتون، ساختارهای شرطی مانند if و if-else ابزارهای اصلی برای کنترل جریان اجرای برنامه هستند. این ساختارها اجازه می‌دهند تا برنامه در صورت برقراری شرط، مسیر خاصی را اجرا کند. مقالهٔ حاضر با معرفی نحوه استفاده از if، if-else، و ترکیب شرط‌ها، کاربردهای آن‌ها را با مثال‌های قابل فهم برای سطح مقدماتی و متوسط توضیح می‌دهد.

Continue