Загрузка...

Методы

Метод — это работа, которая принадлежит одной лампе. Когда вы пишете 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%
Для Прохождения
♾️
∞
Время
🔄
∞
Попытки

📝 Инструкции

  • Внимательно прочитайте каждый вопрос
  • Выберите лучший ответ на каждый вопрос
  • Вы можете пересдавать тест столько раз, сколько захотите
  • Ваш прогресс будет показан вверху