مفاهیم magic methods

  • مدرس : علی بیگدلی
  • تاریخ انتشار: 1404/05/12
  • تعداد بازدید: 19

متدهای جادویی (Magic Methods) در پایتون چیست؟

متدهای جادویی، متدهایی هستند که نامشان با دو علامت زیرخط (underscore) در ابتدا و انتها نوشته شده، مانند __init__ یا __str__. این متدها توسط پایتون به طور خودکار در موقعیت‌های خاص اجرا می‌شوند و به شما امکان می‌دهند رفتارهای پیش‌فرض اشیاء را تغییر دهید یا کنترل کنید.

برای مثال، وقتی یک شیء جدید ساخته می‌شود، پایتون به طور خودکار متد __init__ را اجرا می‌کند تا مقداردهی اولیه انجام شود. وقتی شیء را با print() چاپ می‌کنیم، متد __str__ صدا زده می‌شود تا رشته‌ای قابل نمایش تولید کند.

چرا متدهای جادویی مهم هستند؟

این متدها باعث می‌شوند اشیاء ما رفتاری شبیه به انواع داده‌های پایه (مثل اعداد و رشته‌ها) داشته باشند و بتوانند با عملگرها، توابع و ساختارهای پایتون به شکلی طبیعی کار کنند. بدون این متدها، شیءهای ما فقط داده خواهند داشت ولی هیچ رفتاری نخواهند داشت.

مثال ساده: متد __init__ و __str__
class Person:
    def __init__(self, name):
        # این متد وقتی شیء ساخته می‌شود اجرا می‌شود
        self.name = name

    def __str__(self):
        # این متد وقتی شیء را چاپ می‌کنیم اجرا می‌شود
        return f"Person: {self.name}"

p = Person("Ali")
print(p)  # وقتی print اجرا می‌شود، __str__ فراخوانی می‌شود

در این مثال:

  • __init__ مقدار اولیه برای ویژگی name را تنظیم می‌کند.
  • __str__ مشخص می‌کند وقتی شیء p چاپ می‌شود چه متنی نمایش داده شود.

 

چند متد جادویی مهم دیگر:
  • __add__(self, other): مشخص می‌کند وقتی دو شیء با + جمع زده شوند، چه اتفاقی بیفتد.
  • __eq__(self, other): مشخص می‌کند چطور دو شیء با == مقایسه شوند.
  • __len__(self): وقتی len(obj) اجرا می‌شود، این متد فراخوانی می‌شود.
  • __getitem__(self, key): وقتی شیء با ایندکس (مثل obj[key]) استفاده شود، این متد اجرا می‌شود.

با یادگیری متدهای جادویی، می‌توانید اشیاء خود را هوشمندتر و کاربردی‌تر کنید و رفتار دلخواه را به آن‌ها اضافه نمایید.

ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است. می‌توانید اولین نفر باشید.