TGViewer
Python: задачки и вопросы Python: задачки и вопросы @quiz_python · 6.94K subscribers
Post #4817 289
Python: задачки и вопросы
Развёрнутое пояснение:

1. retry(2) вызывается и возвращает функцию decorator.

2. Синтаксис
@retry(2) применяет decorator к функции fetch.

3. decorator создаёт функцию wrapper и возвращает её.

4. Итоговое имя fetch теперь ссылается на объект wrapper.

5. Внутренняя функция wrapper не обёрнута в functools.wraps(f), поэтому её атрибут __name__ остаётся 'wrapper'.

6. print(fetch.__name__) печатает wrapper.

Почему это важно: в production-коде декораторы с аргументами часто забывают обернуть внутреннюю функцию в functools.wraps. Это ломает логирование, метрики и отладку, потому что все обёрнутые функции начинают называться wrapper, а их __doc__ становится None. Правильный шаблон — добавить
@wraps(f) над wrapper.
  • ✍ 1
More from @quiz_python
  1. Sep 14, 2026А вы уже забрали свой подарок ко Дню программиста? Мы в Tproger вместе с нашими друзьями с…
  2. Aug 30, 2026Развёрнутое пояснение: 1. Создаётся список batch с двумя разными словарями. 2. Вызов enric…
  3. Aug 30, 2026Post #4875
  4. Aug 30, 2026Развёрнутое пояснение: 1. Создаётся внутренний список ['', '', ''] — три пустые строки. 2.…
  5. Aug 30, 2026Post #4873
  6. Aug 29, 2026Развёрнутое пояснение: 1. Декоратор dataclass(frozen=True) генерирует для Client методы __…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →