А я пойду наверно скоро спать🤣 Восстановить режим пока не оч. получается.
Встал в 2 ночи и всё...не могу заснуть. Ну думаю что делать? пойду дорешаю несколько задачек по простой теме(позже пост). А среди них..опять прокрался злосчастный двусвязный список и нагородили новых методов еще.😬
Коротко о задаче:
Верно решили 3 114 учащихся
Из всех попыток 22% верных
Наверно 2.5+ часа решал.🫠🫠🫠
Часа полтора логика где-то + написание. Пошел ее проверил по своим тестам. Всё ок ✅
И еще где-то час ушло на то, что я решил "сэкономить" время, пропивав data-decriptor вместо трёх одинаковых property . Ну а че? Думал так красивее, быстрее и правильнее. Ага...🤡
Какого же было моё удивление, когда assert-ы в итоговой проверке не проходят. Хотя казалось бы...все случаи предусмотрел.
И в чем проблема была, как думаете???😢
def __set_name__(self, owner, name): # а это что еще за зверь?!
self.name = '__' + name # 1 способ - не подошел (хотя так показывали в теории)
self.name = f'_{owner.__name__}__{name}' # 2 cпособ(верный в моем случае)
Т.е....
В первом способе вручную создавалась имя атрибута, которое начиналось с двух подчеркиваний, например, __next.
➡️ Имя атрибута в словаре объекта: __next ⛔️
➡️ Что ожидали ассерты: _ObjList__next ✅
Почему не работало: Ассерты искали атрибут с именем
_ObjList__next, но дескриптор создал атрибут с именем __next. Python считает эти два имени абсолютно разными. Выходит обращался не по тому "адресу".И вот из-за такой, казалось бы мелочи, тратится много времени и нервов на решение задач. Про уставшие глаза, желание забросить всё и сейчас я вообще молчу🧠Ну ничего движемся дальше.
Это мне напомнило момент про "генераторы списков". Раньше их тоже не любил, скорее даже не навидел. А все просто, потому что не понимал как ими пользоваться и тратил кучу времени на решение через такой способ. Проще было написать трёхэтажный цикл с условиями, чем один генератор. Но сейчас всё изменилось и пихаю это много где, и даже когда не надо😂
Вопрос к вам:
А какие у вас сейчас темы сложно даются? Интересно узнать, делитесь, не стеснятесь😼