در حال بارگذاری...

متدها

متد کاری است که مال یک چراغ است. lamp.label() آن کار را انجام می‌دهد و عبارت glow blue را برمی‌گرداند. پرانتزها جزو اجرای کارند. بدون پرانتز کار اجرا نشده و صفحه glow blue نیست. label از کلمه‌ای استفاده می‌کند که از قبل روی همان چراغ ذخیره شده. بسته‌ای نصب نمی‌کند و پوشه‌ای هم نمی‌سازد. خط‌های تورفتهٔ زیر label خود کار هستند. return عبارت را پس می‌دهد. خودش آن را روی صفحه نمی‌نویسد.

یک چراغ کار می‌کند

python
class Lamp:
    def __init__(self, color):
        self.color = color
    def label(self):
        return "glow " + self.color
lamp = Lamp("blue")
print(lamp.label())

روی صفحه glow blue دیده می‌شود. بین glow و blue یک فاصله است. label این عبارت را از رنگ ذخیره‌شده ساخته و پس داده. print آن را می‌نویسد. اگر خط print نبود، متد باز هم عبارت را پس می‌داد و صفحه خالی می‌ماند. lamp.color هنوز همان کلمهٔ blue است. lamp.label() کاری است که glow را جلوی آن می‌گذارد. این دو خواندن یکی نیستند.

دو چراغ، دو برچسب

python
class Lamp:
    def __init__(self, color):
        self.color = color
    def label(self):
        return "glow " + self.color
one = Lamp("blue")
two = Lamp("red")
print(one.label())
print(two.label())

صفحه دو خط دارد. خط اول glow blue است. خط دوم glow red است. one و two دو چراغ‌اند. هر label فقط کلمه‌ای را می‌خواند که روی همان چراغ است. ساختن چراغ قرمز، چراغ آبی را عوض نمی‌کند. one.label() همان glow blue می‌ماند. Lamp هنوز الگوست. one و two شیء هستند. کار یکی است و کلمهٔ ذخیره‌شده هر بار فرق دارد.

Lamp.label() بدون چراغ در هیچ‌کدام از دو برنامه نیست. خود الگو رنگ ذخیره‌شده ندارد و کار برای خواندن به یک چراغ نیاز دارد. آن خط می‌ایستد و نام این ایست TypeError است. None نوشته نمی‌شود و برنامه ادامه پیدا نمی‌کند. اول یک چراغ می‌سازید، بعد پرانتز را روی همان چراغ می‌نویسید.

صفحهٔ بعد کلاس فرزند است. این صفحه فقط یک کار را روی چراغ اجرا می‌کند و نشان می‌دهد چراغ دوم عبارت خودش را نگه می‌دارد.

یک کار روی چراغ

lamp.label() عبارت glow blue را نشان می‌دهد. print عبارت را می‌نویسد. متد آن را پس می‌دهد. چراغ دوم می‌تواند glow red را نشان دهد و اولی را عوض نکند. Lamp.label() بدون چراغ با TypeError می‌ایستد. صفحهٔ بعد کلاس فرزند است.

🧠 دانش خود را بیازمایید

آماده شروع

دانش خود را بیازمایید

خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کرده‌اید

❓
6
سوالات
🎯
70%
برای قبولی
♾️
∞
زمان
🔄
∞
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود