Menu
CoddyTech
flag Ar iconالعربيةdown icon

معامل self

جزء من قسم البرمجة كائنية التوجه في رحلة Python على Coddy. الدرس 4 من 64.

يشير المعامل self إلى نسخة من فئة داخل الأساليب. وهو يتيح لك الوصول إلى سمات الكائن الحالي وتعديلها.

إليك مثالًا على فئة تحتوي على أساليب تستخدم self:

class Car:
    def honk(self):
        print("Beep beep!")
    
    def describe(self):
        print(f"I am a {self.color} {self.model}")

يجب أن يكون المعامل self دائمًا أول معامل في تعريفات الأساليب. فهو يخبر الأسلوب بالكائن المحدد الذي يُستخدم.

أنشئ كائن سيارة وأضف إليه خصائص:

my_car = Car()
my_car.color = "Red"
my_car.model = "Sedan"

استدعِ الآن الطريقتين:

my_car.honk()
my_car.describe()

المخرجات:

Beep beep!
I am a Red Sedan

لاحظ أنه عند استدعاء my_car.describe()، لا تمرّر أي شيء إلى self - إذ تمرّر Python تلقائيًا my_car بوصفه المعامل self.

إليك ما يحدث خلف الكواليس:

# عندما تكتب هذا:
my_car.describe()

# تنفّذ Python هذا فعليًا:
Car.describe(my_car)

تتيح المعلمة self لكل كائن الوصول إلى بياناته الخاصة. ومن دون self، لن تعرف الأساليب سمات أي كائن ينبغي استخدامها.

النقطة الأساسية: أدرج دائمًا self كمعامل أول في تعريفات الطرق، لكن لا تمرّره أبدًا عند استدعاء الطرق؛ تتولى Python ذلك تلقائيًا.

challenge icon

التحدي

سهل

أكمل الصنف Car في car.py بإضافة دالة تُسمّى display_info تستخدم المعامل self لطباعة سنة السيارة وطرازها وشركتها المصنّعة بالتنسيق التالي:

"This car is a [year] [make] [model]".

  • car.py: يحتوي على تعريف الصنف Car، حيث ستضيف الدالة display_info
  • driver.py: الملف الرئيسي للتنفيذ الذي يستورد الصنف Car ويستخدمه

سيستورد الملف driver.py الصنف Car الذي أنشأته، وينشئ كائنات لاختبار تنفيذك. تأكد من أن دالتك تعمل بشكل صحيح عند استدعائها من ملف التشغيل.

جرّب بنفسك

from car import Car

# اختبر شيفرتك
my_car = Car()
my_car.year = 2020
my_car.make = "Toyota"
my_car.model = "Corolla"

my_car.display_info()  # يجب أن يطبع: This car is a 2020 Toyota Corolla
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس البرمجة كائنية التوجه

تدرّب بنفسك: مترجم Python عبر الإنترنت