Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class User:
- def __init__(self, name, last_name, birthday, email):
- self.name = name
- self.last_name = last_name
- self.birthday = birthday
- self.email = email
- self.age = self.get_age() # создаётся переменная класса и ей присваивается значение из функции get_age()
- def get_age(self):
- '''
- Функция для расчёта возраста
- на основе даты рождения и текущей даты
- '''
- from datetime import datetime
- birthday_datetime = datetime.strptime(self.birthday, '%d.%m.%Y') # преобразование 'строки' в формат 'дата'
- today = datetime.now() # получаем текущую дату
- years = today.year - birthday_datetime.year # считаем разницу в годах (2022 - 1999)
- diff = None
- if (today.month * 100 + today.day) > (birthday_datetime.month * 100 + birthday_datetime.day):
- diff = 1
- else:
- diff = 0
- # это можно записать в одну строку:
- # diff = 1 if today.month * 100 + today.day) > (birthday_datetime.month * 100 - birthday_datetime.day) else 0
- age = years - diff
- return age
- def get_status(self):
- status = None
- if self.name == 'Роман' and self.last_name == 'Филипов' and self.birthday == '13.08.1984':
- status = "Герой России"
- return status
- def __str__(self):
- if self.get_status():
- return f"{self.name} {self.last_name}, {self.birthday} г.р., {self.get_status()}.\nВ этом году ему бы исполнилось {self.get_age()} лет."
- else:
- return "Приветик, меня зовут: " + str(self.name) + " " + str(self.last_name) + " , моя почта: " + str(self.email) + ", я родился: " + int(self.birthday)
- u1 = User('Роман', 'Филипов', '13.08.1984', 'my_email@mail.ru')
- print(u1)
- # OUT:
- # Роман Филипов, 13.08.1984 г.р., Герой России.
- # В этом году ему бы исполнилось 38 лет.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement