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()