Fonctions partielles#
Dans certains cas d’utilisation, il peut être nécessaire de regrouper une fonction avec certains paramètres dans une seule variable pour l’exécuter plus tard. La fonction partial() de functools permet de le faire.
from functools import partial
Pour le démontrer, nous définissons une fonction d’exemple.
def compute_sum(a, b):
return a + b
Nous pouvons ensuite stocker l’objet partial de cette fonction en combinaison avec les paramètres dans une variable.
sum_of_3_and_4 = partial(compute_sum, 3, 4)
Cet objet est appelable.
sum_of_3_and_4()
7
Garder des paramètres non définis#
Il est également possible de ne spécifier que partiellement les paramètres.
sum_of_3_and_b = partial(compute_sum, 3)
sum_of_3_and_b(9)
12
Passer des arguments nommés#
Cela fonctionne également avec des arguments nommés.
sum_of_a_and_4 = partial(compute_sum, b=4)
sum_of_a_and_4(5)
9
sum_of_a_and_4(a=1)
5
Exercice#
Programmez une fonction qui détermine la distance euclidienne entre deux points. Ensuite, utilisez partial pour passer un point fixe et une boucle for pour afficher les distances d’une liste de points.
fixed_point = (1, 1, 1)
list_of_points = [(2,1,1), (1,1,3), (2,2,2)]