Maison > développement back-end > Tutoriel Python > Comment puis-je prédéfinir des arguments pour les fonctions Python à l'aide de functools.partial ?

Comment puis-je prédéfinir des arguments pour les fonctions Python à l'aide de functools.partial ?

DDD
Libérer: 2024-12-15 09:42:12
original
618 Les gens l'ont consulté

How Can I Predefine Arguments for Python Functions Using functools.partial?

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()
Copier après la connexion

Sortie :

Hello world
Copier après la connexion

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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal