February 29, 2024
Конструктор класса – метод __init__()
# Напишите конструктор для класса Student class Student: def __init__(self, name: str, age: int): self.name = name self.age = age self.show_message() def show_message(self) -> 'Student': print(f'Студент с именем {self.name} и возрастом {self.age} был добавлен в базу данных') return self def main(): students: list[Student] = [ Student('Егор', 16), Student('Александра', 18), Student('Анастасия', 18) ] if __name__ == '__main__': main()
# Напишите конструктор для класса Phone с атрибутами по умолчанию name, model, weight. # Создайте методы класса: # print_data() – для вывода информации об объекте. # get_number() – для получения информации о номере телефона. # receive_call() – в функцию передается имя звонящего. На экран выводится строка «Звонит имя на номер_телефона». # Вариант усложнения: задайте конструктор при помощи *args (переменной для произвольного кол-ва позиционных аргументов). class Phone: # Конструктор def __init__(self, name: str = 'Samsung', model: str = 'S24 Ultra', weight: int = 232, number: str = None, *installed_apps): print(f'Вызван метод-конструктор объекта {self}') self.name = name self.model = model self.weight = weight self.number = number self.installed_apps = installed_apps # Деструктор def __del__(self): print(f'Вызван метод-деструктор объекта {self}') def get_number(self) -> str: return self.number def set_number(self, number: str) -> 'Phone': self.number = number return self def print_data(self) -> 'Phone': print('\n'.join([ f'Объект {self.__class__.__name__}', f' Название: {self.name}', f' Модель: {self.model}', f' Вес: {self.weight}', f' Номер телефона: {self.number}', f' Установленные приложения: {" | ".join(self.installed_apps)}' ]), end = '\n\n') return self def receive_call(self, caller_name: str) -> 'Phone': print(f'Звонит {caller_name} на {self.number}') return self def main(): a = Phone( 'Samsung', 'S24 Ultra', 232, '123-456-789', 'Telegram', 'Play Store', 'YouTube', 'Twitch' ) a.set_number('+7 (123) 456-78-90').print_data() if __name__ == '__main__': main()