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

1. partial(collect, []) создаёт объект add, в котором аргумент acc уже связан с одним объектом списка [].

2. print(add(1), add(2)) сначала вычисляет оба аргумента.

3. add(1) вызывает collect([], 1): в список добавляется 1, возвращается тот же список [1].

4. add(2) вызывает collect([1], 2): в этот же список добавляется 2, возвращается уже [1, 2].

5. print получает две ссылки на один и тот же список [1, 2] и печатает "[1, 2] [1, 2]".

Почему это важно: functools.partial часто используют для фиксации аргументов, но если такой аргумент изменяемый, все вызовы делят общее состояние. Это стреляет в фабриках обработчиков, логгерах и callback'ах, где частично применённый изменяемый объект оказывается общим для разных вызовов.
  • ✍ 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 →