Иногда нужно создать функцию на основе более универсальной.
>>> 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