0Pricing
Learn AI with Python · درس

الدوال السحرية (__str__ و__repr__ وغيرهما)

تعمّقوا في الدوال الخاصة في Python لتخصيص سلوك الكائنات

الدوال السحرية (__str__ و__repr__ وغيرهما) درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 6 من أصل 6. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 6 دروس في المجموع.

مقدمة إلى الأساليب السحرية

مقدمة إلى الأساليب السحرية

الأساليب السحرية، المعروفة أيضًا باسم أساليب dunder (اختصارًا لعبارة «double underscore»)، هي أساليب خاصة في Python تتيح لك تحديد كيفية تصرف الكائنات في مواقف معينة.

في هذا الدرس، ستتعلم كيفية استخدام الأساليب السحرية الشائعة مثل __str__ و__repr__ وغيرها.

الدوال السحرية (__str__ و__repr__ وغيرهما) — رسم توضيحي 1

ما المقصود بالأساليب السحرية؟

ما المقصود بالأساليب السحرية؟

الأساليب السحرية هي أساليب محددة مسبقًا في Python تُستدعى تلقائيًا عند تنفيذ عمليات معينة على الكائنات. ويمكن تمييزها بوجود شرطتي الشرطة السفلية المزدوجتين، مثل __init__ أو __str__.

أسلوب <code>__init__</code>

أسلوب __init__

يُعد أسلوب __init__ مُنشئًا يهيّئ كائنًا جديدًا. ويُستدعى تلقائيًا عند إنشاء كائن:

# Using the __init__ method to initialize attributes
class Person:
    def __init__(self, name, age):
        self.name = name  # Initialize the name attribute
        self.age = age  # Initialize the age attribute

# Creating an instance of Person
person = Person("Alice", 30)
print(person.name, person.age)  # Outputs: Alice 30

أسلوب <code>__str__</code>

أسلوب __str__

يحدد أسلوب __str__ التمثيل النصي للكائن عند استدعاء print():

# Defining the __str__ method
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return f"Name: {self.name}, Age: {self.age}"  # String representation

person = Person("Alice", 30)
print(person)  # Outputs: Name: Alice, Age: 30

أسلوب <code>__repr__</code>

أسلوب __repr__

يوفر أسلوب __repr__ تمثيلًا نصيًا رسميًا للكائن، ويُستخدم غالبًا لتصحيح الأخطاء:

# Defining the __repr__ method
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __repr__(self):
        return f"Person('{self.name}', {self.age})"  # Debug-friendly representation

person = Person("Alice", 30)
print(repr(person))  # Outputs: Person('Alice', 30)

تحميل المعاملات باستخدام الأساليب السحرية

تحميل المعاملات باستخدام الأساليب السحرية

يمكنك استخدام الأساليب السحرية لتخصيص سلوك معاملات مثل + أو ==:

# Overloading the + operator with __add__
class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __add__(self, other):
        return Point(self.x + other.x, self.y + other.y)  # Adding two points

    def __str__(self):
        return f"({self.x}, {self.y})"

point1 = Point(1, 2)
point2 = Point(3, 4)
result = point1 + point2  # Calls __add__
print(result)  # Outputs: (4, 6)

الأساليب السحرية شائعة الاستخدام

الأساليب السحرية شائعة الاستخدام

إليك بعض الأساليب السحرية شائعة الاستخدام:

  • __len__: يحدد سلوك الدالة len().
  • __getitem__: يتيح استخدام الفهرسة كما في القوائم أو القواميس.
  • __eq__: يخصص مقارنة التساوي باستخدام ==.

استخدام <code>__len__</code> و<code>__getitem__</code>

استخدام __len__ و__getitem__

يمكنك استخدام __len__ لتحديد طول كائن مخصص، واستخدام __getitem__ لجعله قابلًا للفهرسة:

# Using __len__ and __getitem__ in a custom class
class CustomList:
    def __init__(self, items):
        self.items = items

    def __len__(self):
        return len(self.items)  # Defines the behavior of len()

    def __getitem__(self, index):
        return self.items[index]  # Enables indexing

custom_list = CustomList([1, 2, 3])
print(len(custom_list))  # Outputs: 3
print(custom_list[1])  # Outputs: 2

الأخطاء الشائعة في الأساليب السحرية

الأخطاء الشائعة في الأساليب السحرية

إليك بعض الأخطاء التي يجب تجنبها:

  • تعريف أسلوب سحري بطريقة لا تتوافق مع السلوك المقصود منه.
  • تحميل المعاملات دون حاجة.
  • نسيان تطبيق الأساليب السحرية المطلوبة في أنواع البيانات المخصصة.

ماذا تعلمنا؟

ماذا تعلمنا؟

في هذا الدرس، تعلمت:

  • ما هي الأساليب السحرية ولماذا هي مفيدة.
  • كيفية استخدام الأساليب السحرية الشائعة مثل __init__ و__str__ و__repr__.
  • كيفية تحميل المعاملات باستخدام الأساليب السحرية.

أحسنت! لننتقل إلى الموضوع التالي.

الدوال السحرية (__str__ و__repr__ وغيرهما) — رسم توضيحي 11

الأسئلة الشائعة

هل درس «الدوال السحرية (__str__ و__repr__ وغيرهما)» مجاني؟

نعم — نص درس «الدوال السحرية (__str__ و__repr__ وغيرهما)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 6 دروس في المجموع.

ماذا ستتعلم في «الدوال السحرية (__str__ و__repr__ وغيرهما)»؟

تعمّقوا في الدوال الخاصة في Python لتخصيص سلوك الكائنات تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟

لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 6 من أصل 6.

كم من الوقت يستغرق درس «الدوال السحرية (__str__ و__repr__ وغيرهما)»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟

نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. الفئات والكائنات
  2. السمات والدوال
  3. الوراثة
  4. تعدد الأشكال
  5. التغليف والتجريد
  6. الدوال السحرية (__str__ و__repr__ وغيرهما)
← العودة إلى Learn AI with Python