Выбор ответа Junior Функции и области видимости спрашивают часто обновлено

Что такое *args и **kwargs

Вопрос

Чем будут args и kwargs при вызове f(1, 2, x=3) для def f(*args, **kwargs)?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: args = (1, 2), kwargs = {"x": 3}. Лишние позиционные аргументы собираются в кортеж, именованные в словарь.

Варианты ответа

  1. args = [1, 2], kwargs = {"x": 3}
  2. args = (1, 2, 3), kwargs = {}
  3. args = (1, 2), kwargs = {"x": 3}правильный ответ
  4. args = (1, 2), kwargs = (("x", 3),)

Разбор

Лишние позиционные аргументы собираются в кортеж, именованные в словарь. Не в список: кортеж неизменяем. Именованный x=3 не попадает в args. Имена args и kwargs просто соглашение, важны звёздочки.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.