Найти в Дзене
PyHub. Обучение Python.

Введение в ключевые аргументы Python

Давай начнем с простой функции, которая вычисляет чистую цену по цене продажи и скидке: Функция `get_net_price()` имеет два параметра: `price` и `discount`.
Вот как вызвать функцию `get_net_price()` для вычисления чистой цены при цене 100 и скидке 10%: Вывод: 90.0 При вызове функции `get_net_price(100, 0.1)` мы передаем каждый аргумент как позиционный аргумент. Другими словами, мы передаем аргумент `price` первым, а аргумент `discount` вторым.
Однако вызов функции `get_net_price(100, 0.1)` имеет проблему с читаемостью. Потому что, глядя только на этот вызов функции, нельзя понять, что такое `price`, а что такое `discount`.
Кроме того, при вызове функции `get_net_price()` вам нужно знать позицию каждого аргумента.
Если вы этого не знаете, функция будет неправильно вычислять `net_price`. Например: Вывод: -9.9 Чтобы улучшить читаемость, Python предлагает ключевые аргументы.
Вот синтаксис ключевого аргумента: fn(parameter1=value1, parameter2=value2) Используя синтаксис ключевого аргум
Оглавление

Давай начнем с простой функции, которая вычисляет чистую цену по цене продажи и скидке:

Все коды с картинок можете найти в комментариях
Все коды с картинок можете найти в комментариях

Функция `get_net_price()` имеет два параметра: `price` и `discount`.

Вот как вызвать функцию `get_net_price()` для вычисления чистой цены при цене 100 и скидке 10%:

Вызов функции get_net_price()
Вызов функции get_net_price()

Вывод:

90.0

При вызове функции `get_net_price(100, 0.1)` мы передаем каждый аргумент как позиционный аргумент. Другими словами, мы передаем аргумент `price` первым, а аргумент `discount` вторым.

Однако вызов функции `get_net_price(100, 0.1)` имеет проблему с читаемостью. Потому что, глядя только на этот вызов функции, нельзя понять, что такое `price`, а что такое `discount`.

Кроме того, при вызове функции `get_net_price()` вам нужно знать позицию каждого аргумента.

Если вы этого не знаете, функция будет неправильно вычислять `net_price`. Например:

-3

Вывод:

-9.9

Чтобы улучшить читаемость, Python предлагает ключевые аргументы.

Вот синтаксис ключевого аргумента:

fn(parameter1=value1, parameter2=value2)

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

Следовательно, вы можете вызвать функцию, поменяв местами аргументы, таким образом:

fn(parameter2=value2, parameter1=value1)

Вот как использовать синтаксис ключевого аргумента для вызова функции `get_net_price()`:

-4

Или:

-5

Оба вызова возвращают один и тот же результат.

При использовании ключевых аргументов важны их имена, а не их позиции.

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

Например:

-6

Ключевые аргументы и значения по умолчанию

Предположим, у вас есть следующая функция `get_net_price()`, которая вычисляет чистую цену по цене продажи, налогу и скидке.

-7

В функции `get_net_price()` параметры `tax` и `discount` имеют значения по умолчанию 7% и 5% соответственно.

Вот как вызвать функцию `get_net_price()` и использовать значения по умолчанию для параметров `tax` и `discount`:

-8

Вывод:

102.0

Предположим, вы хотите использовать значение по умолчанию для параметра `tax`, но не для `discount`. Следующий вызов функции работает неправильно.

net_price = get_net_price(100, 0.06)

...потому что Python присвоит 100 цене и 0.1 налогу, а не скидке.

Чтобы исправить это, вы должны использовать ключевые аргументы:

-9

Или вы можете смешивать позиционные и ключевые аргументы:

-10

Требования к ключевым аргументам Python

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

Следующий код вызовет ошибку, потому что он использует позиционный аргумент после ключевого аргумента:

net_price = get_net_price(100, tax=0.08, 0.06)
Ошибка:
SyntaxError: positional argument follows keyword argument

Чтобы исправить это, нужно использовать ключевой аргумент для третьего аргумента, таким образом:

-11

Краткие сведения:

  • Ключевые аргументы в Python позволяют передавать значения в функцию не только по позиции, но и по их имени. Это улучшает читаемость кода и позволяет использовать значения по умолчанию для некоторых аргументов.
  • Важно помнить, что после первого использования ключевого аргумента все остальные должны быть также ключевыми.

#Саморазвитие #Обучение #Python #IT