Параметры по умолчанию в Python
В этом уроке вы узнаете о параметрах Python по умолчанию, и как их использовать для упрощения вызовов функций.
При определении функции вы можете указать значение по умолчанию для каждого параметра.
Чтобы указать значения по умолчанию для параметров, используйте следующий синтаксис:
def function_name(param1, param2=value2, param3=value3, ...):
В этом синтаксисе вы указываете значения по умолчанию (значение2, значение3,…) для каждого параметра с помощью оператора присваивания(=).
Когда вы вызываете функцию и передаете аргумент параметру, имеющему значение по умолчанию, функция будет использовать этот аргумент вместо значения по умолчанию. Однако если вы не передадите аргумент, функция будет использовать значение по умолчанию.
Чтобы использовать параметры по умолчанию, вам необходимо разместить параметры со значениями по умолчанию после других параметров. В противном случае вы получите синтаксическую ошибку.
Например, вы не можете сделать что-то вроде этого:
def function_name(param1=value1, param2, param3):
Это вызывает синтаксическую ошибку.
Пример параметров по умолчанию в Python
В следующем примере определяется функция Greeting(), которая возвращает приветственное сообщение:
def greet(name, message='Hi'): return f"{message} {name}"
Функция Greeting() имеет два параметра: name и message. А параметр message имеет значение по умолчанию «Hello».
Следующий код вызывает функцию Greeting() и передает два аргумента:
def greet(name, message='Hi'): return f"{message} {name}" greeting = greet('John', 'Hello') print(greeting)
Выход:
Hello John
Поскольку мы передаем второй аргумент функции Greeting(), функция использует этот аргумент вместо значения по умолчанию.
В следующем примере функция Greeting() вызывается без передачи второго аргумента:
def greet(name, message='Hi'): return f"{message} {name}" greeting = greet('John') print(greeting)
Выход:
Hi John
В этом случае функция Greeting() использует значение параметра message по умолчанию.
Несколько параметров по умолчанию
Следующий пример переопределяет функцию Greeting() с двумя параметрами, имеющими значения по умолчанию:
def greet(name='there', message='Hi'): return f"{message} {name}"
В этом примере вы можете вызвать функцию Greeting() без передачи каких-либо параметров:
def greet(name='there', message='Hi'): return f"{message} {name}" greeting = greet() print(greeting)
Выход:
Hi there
Предположим, вы хотите, чтобы функция Greeting() возвращала приветствие типа «Hello there». Вы можете получить следующий вызов функции:
def greet(name='there', message='Hi'): return f"{message} {name}" greeting = greet('Hello') print(greeting)
К сожалению, он возвращает неожиданное значение:
Hi Hello
Потому что, когда вы передаете аргумент «Hello», функция Greeting() рассматривает его как первый аргумент, а не как второй.
Чтобы решить эту проблему, вам нужно вызвать функцию Greeting(), используя аргументы ключевого слова, например:
def greet(name='there', message='Hi'): return f"{message} {name}" greeting = greet(message='Hello') print(greeting)
Выход:
Hello there