Параметры по умолчанию

Напомним, что аргумент может быть необязательным. У такого аргумента есть значение по умолчанию.

Например, функция parent_for, которую вы использовали в некоторых упражнениях, принимает имя ребёнка первым аргументом, а вторым — строку 'mother' или 'father'. Второй аргумент — необязательный, и если не указывать его, то автоматически по умолчанию будет использоваться 'mother'.

Эти два вызова равнозначны:

parent_for('Jon Snow')
parent_for('Jon Snow', 'mother')

Каким образом там сделаны аргументы по умолчанию? Давайте заглянем в определение этой функции:

def parent_for(child_name, parent_name='mother'):
    # какой-то код

Первый аргумент указан привычно — просто название переменной. Это делает аргумент обязательным.

Второй аргумент указан со значением в формате аргумент=какое_то_значение. Точно так же, как при создании переменной. Этот фрагмент =какое_то_значение делает аргумент необязательным, и задаёт ему значение по умолчанию.

Аргументов по умолчанию может быть любое количество, но все они должны быть в конце списка аргументов. То есть такие строчки кода синтаксически некорректны:

  • def parent_for(child_name='Jon', who):
  • def calculate(a, b=90, c):
  • def get_prices(code=4161, quantity, place):

Задание

Реализуйте функцию custom_parent_for, которая принимает два аргумента:

  1. Строку — имя ребёнка.
  2. Строку с указанием родителя. Этот аргумент должен по умолчанию быть 'father'.

Функция должна возвращать имя соответствующего родителя.

Пример вызова:

custom_parent_for('Cersei Lannister')

Такой вызов вернёт имя отца.

  • Используйте готовую функцию parent_for внутри своей функции.
  • Не нужно вызывать свою функцию custom_parent_for, только определить её.

Нашли ошибку? Есть что добавить? Пулреквесты приветствуютсяhttps://github.com/hexlet-basics

Упражнение доступно только авторизованным пользователям.

Пожалуйста, авторизуйтесь, это необходимо для отслеживания прогресса выполнения уроков. Если у вас ещё нет учётной записи, то сейчас самое время создать аккаунт.