tg-me.com/BookPython/3460
Create:
Last Update:
Last Update:
Иногда нужно создать функцию на основе более универсальной. Например, у функции 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
BY Библиотека Python разработчика | Книги по питону
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/BookPython/3460