Методы
Метод — это работа, которая принадлежит одной лампе. Когда вы пишете lamp.label(), эта работа выполняется и возвращает glow blue. Скобки — часть запуска. Без них работа не выполнена, и на экране не glow blue. label берёт слово, которое уже хранится в этой лампе. Он не устанавливает пакет и не создаёт папку. Строки с отступом под label — это и есть работа. return возвращает слова, но сам не пишет их на экран.
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 перед ним. Результат у них разный.
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. Следующая страница — наследование.
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху