رفتن به محتوای اصلی
برنامه‌سازی پیشرفته با پایتون درس‌نامهٔ آزاد
مفهوم متوسط ۹ دقیقه

متدهای جادویی (dunder)

مهم‌ترین dunderها: نمایش، برابری، طول، عملگر و پروتکل تکرار با جدول انتخاب.

نام‌های دوروآندرلاین (__x__) قراردادِ زبان‌اند، نه جادو: هر کدام یک پروتکل را فعال می‌کند.

متدفعال می‌کندنکته
__repr__نمایش توسعه‌دهندهترجیحاً شبیه سازنده
__str__نمایش کاربر (print)اگر نبود، از __repr__ استفاده می‌شود
__eq__==اگر تعریف کردی، به __hash__ هم فکر کن
__len__len()باید نامنفی برگرداند
__add__+شیء تازه برگردان، نه تغییر درجا
__iter__حلقهٔ forدروازهٔ تکرارپذیرشدن
class Book:
    def __init__(self, title, pages):
        self.title, self.pages = title, pages
    def __repr__(self):
        return f"Book({self.title!r}, {self.pages!r})"
    def __eq__(self, other):
        return (self.title, self.pages) == (other.title, other.pages)

پیش‌نیازها

مطالب مرتبط

از همین بخش و با برچسب‌های مشترک

این مطلب را خواندید؟ آن را علامت بزنید تا پیشرفت شما روی همین دستگاه ذخیره شود.

وضعیت پیشرفت برای متدهای جادویی (dunder)