Документация по Python

Частичные функции

В: Документация по Python

Введение

Примеры

Поднять власть

Давайте предположим , что мы хотим возвести x в степень у.

Вы бы написали это как:

 def raise_power(x, y):
    return x**y

 

Что делать , если у значения может принимать конечное множество значений?

Давайте предположим , что у может быть один из [3,4,5] и предположим, что вы не хотите предлагать конечному пользователю возможность использовать такую функцию , так как она является очень интенсивными вычислениями. На самом деле вы бы проверить , если при условии , у принимает правильное значение и переписать функцию:

 def raise(x, y):
    if y in (3,4,5):
        return x**y
    raise NumberNotInRangeException("You should provide a valid exponent")

 

Беспорядочный? Давайте использовать абстрактную форму и специализировать его всех трех случаях: давайте реализуем их частично.

from functors import partial
raise_to_three = partial(raise, y=3)
raise_to_four = partial(raise, y=4)
raise_to_five = partial(raise, y=5)

 

Что здесь происходит? Мы исправили Y Params , и мы определили три различные функции.

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

Синтаксис

Параметры

Примечания

Еще от кодкамп
Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.