کلاس فرزند
کلاس فرزند چیزی را که والد ذخیره کرده نگه میدارد و میتواند یک کار را عوض کند. Desk فرزند Lamp است. آن را Desk(Lamp) مینویسید. فرزند بستهای نصب نمیکند و پوشهای هم نمیسازد. Desk("blue") هنوز کلمهٔ blue را ذخیره میکند، چون فرزند init را از نو ننوشته. label والد هنوز glow را جلوی کلمه میگذارد. label فرزند desk را جلوی آن میگذارد. هر چراغ را خودتان میسازید. خط class Desk(Lamp) بهتنهایی چراغی نمیسازد.
class Lamp:
def __init__(self, color):
self.color = color
def label(self):
return "glow " + self.color
class Desk(Lamp):
def label(self):
return "desk " + self.color
plain = Lamp("blue")
desk = Desk("blue")
print(plain.label())
print(desk.label())
صفحه دو خط دارد. خط اول glow blue است. خط دوم desk blue است. plain از Lamp ساخته شده، پس کار والد اجرا میشود. desk از Desk ساخته شده، پس کار فرزند اجرا میشود. در هر خط، بین کلمهٔ جلو و blue یک فاصله است. هر دو چراغ یک کلمه ذخیره کردهاند. فقط کاری که جلوی آن است عوض شده. print خطها را مینویسد. متدها عبارت را پس میدهند.
فرزند والد را از نو نمینویسد. بعد از این برنامه، چراغی که از Lamp ساخته شود هنوز glow blue میگوید. چراغ قرمز صفحهٔ قبل اینجا نیست. چیزی که عوض شده این است که برای یک Desk کدام کار اجرا میشود. plain.color و desk.color هر دو کلمهٔ blue هستند. فرزند رنگ تازهای ذخیره نکرده. فقط label را عوض کرده. اگر فرزند label خودش را نداشت، خط glow والد برای چراغ میز هم اجرا میشد. این فرزند label خودش را دارد، پس خط دوم desk blue است.
صفحهٔ بعد متدهای ویژه است. این صفحه فقط فرزندی را نشان میدهد که کلمهٔ ذخیرهشده را نگه میدارد و یک کار را عوض میکند.
فرزند کلمه را نگه میدارد
Desk فرزند Lamp است. صفحه glow blue است و بعد desk blue. کلمهٔ ذخیرهشده blue میماند. فرزند label را عوض میکند و والد را از نو نمینویسد. صفحهٔ بعد متدهای ویژه است.
🧠 دانش خود را بیازمایید
دانش خود را بیازمایید
خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کردهاید
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود