الرجوع للمكتبةالبرمجة الكائنية · 4 دقائق قراءة

ليش تغيير حالة كائن ما يغير الثاني؟

افهم الفرق بين الكلاس والكائن مع مثال بسيط في بايثون.

الفكرة ببساطة

الكلاس يصف البيانات والأفعال اللي يقدر عليها الكائن. لما تنشئ كائنين من الكلاس نفسه، كل واحد ممكن يحتفظ بقيم مختلفة.

في بايثون، self يشير إلى الكائن اللي استدعى الدالة. تعديل self.count يغير عداد هذا الكائن.

مثال محلول

عندنا عدادان. زد الأول مرة والثاني مرتين.

class Counter:
    def __init__(self):
        self.count = 0

    def increment(self):
        self.count += 1

a, b = Counter(), Counter()
a.increment()
b.increment()
b.increment()
print(a.count, b.count)

تطبع 1 2. كل استدعاء لـ Counter أنشأ كائنا له عداد مستقل.

انتبه لهالنقطة

إذا كتبت b = a صار الاسمان يشيران لنفس الكائن. إنشاء كائن ثاني يحتاج استدعاء Counter مرة ثانية.

جرّب بنفسك

إذا نفذت a.increment() مرة إضافية بعد المثال، وش قيمتا a.count وb.count؟

اعرض الإجابة

القيمتان 2 و2. عداد a زاد من 1 إلى 2، وعداد b بقي 2.

أكمل القراءة

هياكل البيانات4 دقائق قراءة

متى تستخدم الطابور ومتى تستخدم المكدس؟

تتبع ترتيب خروج العناصر من Queue وStack على مثال طلبات دعم.

اقرأ الدرس
SQL5 دقائق قراءة

كيف تظهر كل الطلاب حتى اللي ما سجلوا؟

استخدم LEFT JOIN وشوف أثر القيم الناقصة على العد.

اقرأ الدرس