Аргументы по умолчанию в функциях Python

В этой статье мы расскажем, как использовать аргументы по умолчанию в функциях Python.

Содержание

Функция без аргументов

Давайте определим простую функцию Python без аргументов:

def my_function():
    print("This is a function without arguments")

Приведенный выше код определяет функцию my_function, которая не принимает аргументов и выводит строку.

Пример вызова функции my_function():

my_function()

Результат работы my_function():

This is a function without arguments

Функция с явными аргументами

Теперь определим функцию Python, которой передается несколько значений для аргументов. Если вы не укажете значения для всех аргументов функции, то выведется сообщение об ошибке.

Функция, которую мы будем использовать в качестве примера.

def func_args(integer1, integer2):
    result = integer1 + integer2
    return result

Мы создаем функцию func_args(), которая принимает два аргумента: integer1 и integer2. Функция добавляет значения, переданные в аргументах, и возвращает результат вызываемой функции.

result = func_args(10, 20)
print(result)

Приведенный выше код вызывает метод func_args() с двумя значениями параметров. В итоге на экран выводится сумма этих двух значений.

Теперь вызовем метод func_args() без передачи значений для аргументов:

result = func_args()
print(result)

В результате на экран будет выведена следующая ошибка:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-13-3449c8e5e188> in <module>
----> 1 result = func_args()
      2 print(result)

TypeError: func_args() missing 2 required positional arguments: 'integer1' and 'integer2'

Ошибка возникает из-за того, что при вызове функции func_args() отсутствуют два обязательных аргумента integer1 и integer2. Поэтому нужно передать значения для аргументов integer1 и integer2 при вызове функции.

Теперь передадим значение одного из аргументов:

result = func_args(10)
print(result)

После выполнения мы снова увидим сообщение об ошибке.

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-14-640ec7b786e1> in <module>
----> 1 result = func_args(10)
      2 print(result)

TypeError: func_args() missing 1 required positional argument: 'integer2'

Теперь ошибка возникла из-за того, что значение аргумента integer2 отсутствует. Это означает, что нужно явно передавать значения для всех аргументов функции.

Функция с аргументами по умолчанию

Это те аргументы, которые принимают значения по умолчанию, если явные значения не переданы им из вызова функции. Определим функцию с одним аргументом по умолчанию.

def find_square(integer1=2):
    result = integer1 * integer1
    return result

Данный код определяет функцию find_square() с одним аргументом по умолчанию integer1 со значением 2. Если вы вызываете find_square() со значением для аргумента integer1, функция find_square() вернет квадрат этого значения.

Если не передать ни одного значения функции find_square() integer1, то integer1 будет присвоено значение по умолчанию, и функция вернет квадрат 2.

Сначала вызовем метод find_square() со значением аргумента 10:

result = find_square(10)
print(result)

Вывод:

100

При выполнении этого кода значение 10 перезаписывает значение по умолчанию 2 аргумента integer1 и функция возвращает квадрат 10.

Теперь вызовем функцию find_square() без какого-либо значения для аргумента argument1. В этом случае функция вернет 4, поскольку при отсутствии значения будет использоваться значение по умолчанию 2.

result = find_square()
print(result)

Вывод:

4

Функция Python также может иметь несколько аргументов по умолчанию. Например, в следующем примере функция складывает целые числа, переданные в качестве аргументов. Если ни одно целое число не передано в функцию, аргументы по умолчанию принимают значения 2 и 4:

def add_ints(integer1=2, integer2=4):
    result = integer1 + integer2
    return result

Вызовем функцию add_ints() без каких-либо параметров.

result = add_ints()
print(result)

Вывод:

6

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

Данная публикация представляет собой перевод статьи «Default Arguments in Python Functions» , подготовленной дружной командой проекта Интернет-технологии.ру

Меню