Выбор ответа Middle Функции и области видимости обновлено
Только позиционные и только именованные параметры
Вопрос
Какой вызов функции def f(a, /, b, *, c) допустим?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: f(1, b=2, c=3). a стоит до /, поэтому передаётся только позиционно, c после только по имени, b как угодно. f(1, 2, 3) ломается на c, который нельзя передать позиционно. f(a=1, ...) нарушает правило для a.
Варианты ответа
f(1, 2, 3)f(a=1, b=2, c=3)f(1, b=2, c=3)правильный ответf(1, 2)
Разбор
a стоит до /, поэтому передаётся только позиционно, c после * только по имени, b как угодно. f(1, 2, 3) ломается на c, который нельзя передать позиционно. f(a=1, ...) нарушает правило для a. В f(1, 2) не хватает обязательного c.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Функции и области видимости»
- Что такое *args и **kwargs
- Перекрытие встроенных имён
- Как передаются аргументы в функцию Python
- Где хранятся переменные замыкания
- Вызов с *args и **kwargs: разбор сигнатуры
- Композиция функций
- Мемоизация через замыкание
- Повтор вызова с ограничением попыток