Conversation
добавлено решение первого пункта задания
добавлено решение второго пункта задания
добавлено решение третьего пункта задания
добавлено решение седьмого пункта задания
добавлено решение четвёртого, пятого, шестого пунктов задания
8th hometask/1th task.py
Outdated
| # Создать объект класса Дата | ||
| new_date = Date(f'{randint(1, 30):02}-{randint(1, 12):02}-{randint(1900, 2100)}') | ||
| # Отобразить содержимое объекта | ||
| print(new_date.str_date) | ||
| # Отобразить результат рабты метода Преобразования | ||
| print(Date.date_to_numeric(new_date.str_date)) | ||
| # Вызвать метод Проверки даты | ||
| Date.date_validation(new_date.str_date) |
There was a problem hiding this comment.
Еще для большего удобства я бы предложил дату отправлять в конструктор, а эти методы вызывать из него - или инициализировали объект, или вывалились с ошибкой, например. Тогда получится что у вас есть объект с точно валидной цифровой датой, которым вы можете дальше управлять. Будет поудобнее)
Заодно вы избежите повторов вызовов и повторов одних и тех же действий. (Сейчас date_to_numeric например вы вызываете специально для валидации - что по-сути лишний раз преобразования запускает)
There was a problem hiding this comment.
Готово, переделал
А как-то можно удалить объект при вызове конструктора?
There was a problem hiding this comment.
Объект сам удалится когда на него перестанут ссылаться - вам не нужно об этом думать. А так через оператор del можно удалять объекты любые
There was a problem hiding this comment.
Ага, это понятно
Задумка в следующем:
Сейчас, если пользователь создаёт объект класса Дата с некорректными данными, то объект создаётся и в его атрибут записывается ссылка на None, как признак, что объект создан некорректно/с ошибкой.
Хотел бы вместо этого просто удалять объект класса Дата с некорректными данными.
Нагуглил один способ, как можно в классе получить имена создаваемых объектов, чтоб их удалить, но там совсем что-то ужасное в плане кода и не только.
переделано решение первого пункта задания. Теперь содержимое объекта Дата проверяется в конструкторе. Дополнительный вызов методов проверки не требуется.
добавлено решение первого пункта задания