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

ما الأساليب السحرية؟
ما الأساليب السحرية؟
الأساليب السحرية هي أساليب محددة مسبقًا في Python، تُستدعى تلقائيًا عند تنفيذ عمليات معينة على الكائنات. ويمكن تمييزها بوجود شرطتي سفلية متتاليتين في بدايتها ونهايتها، مثل __init__ أو __str__.
الأسلوب __init__
الأسلوب __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الأسلوب __str__
الأسلوب __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الأسلوب __repr__
الأسلوب __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__: يخصص مقارنة التساوي باستخدام==.
استخدام __len__ و__getitem__
استخدام __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__ وما إلى ذلك)» مجاني؟
نعم — نص درس «الطرق السحرية (__str__ و__repr__ وما إلى ذلك)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 6 دروس في المجموع.
ماذا ستتعلم في «الطرق السحرية (__str__ و__repr__ وما إلى ذلك)»؟
تعمّق في الطرق الخاصة في Python لتخصيص سلوك الكائنات تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟
لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 6 من أصل 6.
كم من الوقت يستغرق درس «الطرق السحرية (__str__ و__repr__ وما إلى ذلك)»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟
نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الفئات والكائنات
- السمات والطرق
- الوراثة
- تعدد الأشكال
- التغليف والتجريد
- الطرق السحرية (__str__ و__repr__ وما إلى ذلك)