Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
7
Исследование методов, декораторов и наследования в Python
Условие задачи
В этом фрагменте кода показано, как устроены разные виды методов в классе, как применяется свойство и как реализовано наследование. Обратите внимание на:
- обычный метод
get_full_name, который формирует полное имя студента; - статический метод
get_greeting, не зависящий от состояния объекта; - метод класса
get_default_course, работающий с атрибутом класса; - свойство
is_lucky, которое вычисляет логическое значение на основе длины имени и возраста; - наследника
StudentPlus, переопределяющий атрибутdefault_courseи добавляющий новый методget_full_upper_case_name.
Опишите, какие именно методы и декораторы задействованы, как построена цепочка наследования и какие результаты возвращаются при вызове каждого из методов.
class Student:
default_course = 'Python Developer'
def __init__(self, name, surname, age):
self.name = name
self.surname = surname
self.age = age
def get_full_name(self):
return f'{self.name} {self.surname}'
@staticmethod
def get_greeting():
return 'Привет, студент!'
@classmethod
def get_default_course(cls):
return cls.default_course
@property
def is_lucky(self):
return len(self.name + self.surname) == self.age
class StudentPlus(Student):
default_course = 'Python Developer Plus'
def get_full_upper_case_name(self):
return f'{self.name} {self.surname}'.upper()