Comprendre la liaison d'arguments dans les fonctions Python
Supposons que vous souhaitiez créer une fonction qui peut être appelée ultérieurement avec des arguments spécifiques prédéfinis ou avec moins d'arguments supplémentaires arguments. Comment cela peut-il être réalisé en Python ?
Solution : functools.partial
La solution réside dans l'utilisation de la fonction functools.partial. Il renvoie un appelable qui encapsule une fonction avec tout ou partie de ses arguments gelés. Cela vous permet d'invoquer ultérieurement la fonction encapsulée avec les arguments gelés déjà appliqués.
Exemple d'utilisation
Montrons comment lier des arguments à l'aide de functools.partial :
import functools print_hello = functools.partial(sys.stdout.write, "Hello world\n") print_hello()
Sortie :
Hello world
Ce code crée une fonction print_hello qui affichera toujours "Hello world" lorsqu'elle sera appelée. La fonction functools.partial a lié le premier argument de sys.stdout.write à la chaîne "Hello world".
Expression Lambda équivalente
Le code ci-dessus est équivalent à l'expression lambda suivante :
print_hello = lambda *a, **kw: sys.stdout.write("Hello world\n", *a, **kw)
En d'autres termes, functools.partial fournit un moyen pratique de créer un nouveau fonction en appliquant partiellement des arguments à une fonction existante.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!