Аргументы по умолчанию в функциях 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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *