Python: Параметры по умолчанию
Напомним, что аргумент может быть необязательным. У такого аргумента есть значение по умолчанию.
Например, функция 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()
, которая принимает два аргумента:
- Строку — имя ребёнка.
- Строку с указанием родителя. Этот аргумент должен по умолчанию быть
'father'
.
Функция должна возвращать имя соответствующего родителя.
Пример вызова:
custom_parent_for('Cersei Lannister') # Tywin Lannister
Такой вызов вернёт имя отца.
- Используйте готовую функцию
parent_for()
внутри своей функции. - Не нужно вызывать свою функцию
custom_parent_for()
, только определить её.