Please open Telegram to view this post
VIEW IN TELEGRAM
Иногда нужно создать функцию на основе более универсальной. Например, у функции
Для более точной и семантически понятной реализации можно использовать
Это удобно, когда нужно передать функцию в качестве аргумента в другую функцию высшего порядка, но с заблокированными значениями некоторых аргументов:
Без использования
📲 Мы в MAX
👉@BookPython
int() есть параметр base, который можно зафиксировать, чтобы получить новую функцию base2:
>>> int("10")
10
>>> int("10", 2)
2
>>> def base2(x):
... return int(x, 2)
...
>>> base2("10")
2
Для более точной и семантически понятной реализации можно использовать
functools.partial:
from functools import partial
base2 = partial(int, base=2)
Это удобно, когда нужно передать функцию в качестве аргумента в другую функцию высшего порядка, но с заблокированными значениями некоторых аргументов:
>>> list(map(partial(int, base=2), ["1", "10", "100"]))
[1, 2, 4]
Без использования
partial пришлось бы писать код так:
>>> list(map(lambda x: int(x, base=2), ["1", "10", "100"]))
[1, 2, 4]
👉@BookPython
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1