Lisez cet article complet sur Global News One
functools.partial crée une nouvelle fonction en appliquant partiellement des arguments à une fonction existante. Ceci est utile pour simplifier les appels de fonction dans les scénarios où certains arguments sont répétitifs ou fixes.
La fonction functools.partial en Python vous permet de "geler" une partie des arguments ou des mots-clés d'une fonction, créant ainsi une nouvelle fonction avec moins de paramètres. C'est particulièrement utile lorsque vous souhaitez fixer certains paramètres d'une fonction tout en gardant d'autres flexibles.
from functools import partial
partial(func, *args, **kwargs)
L'objet renvoyé est une nouvelle fonction où les arguments fixes sont "gelés" et vous n'avez qu'à fournir les arguments restants lors de l'appel de la nouvelle fonction.
def power(base, exponent): return base ** exponent # Create a square function by fixing exponent = 2 square = partial(power, exponent=2) # Now, square() only needs the base print(square(5)) # Output: 25 print(square(10)) # Output: 100
Ici, partial crée un nouveau carré de fonction qui utilise toujours exposant=2.
Supposons que vous ayez une fonction avec plusieurs arguments et que vous l'appeliez souvent avec des valeurs fixes.
def greet(greeting, name): return f"{greeting}, {name}!" # Fix the greeting say_hello = partial(greet, greeting="Hello") say_goodbye = partial(greet, greeting="Goodbye") print(say_hello("Alice")) # Output: Hello, Alice! print(say_goodbye("Alice")) # Output: Goodbye, Alice!
Vous pouvez utiliser partial pour adapter une fonction à des opérations telles que map.
def multiply(x, y): return x * y # Fix y = 10 multiply_by_10 = partial(multiply, y=10) # Use in a map numbers = [1, 2, 3, 4] result = map(multiply_by_10, numbers) print(list(result)) # Output: [10, 20, 30, 40]
Partial fonctionne de manière transparente avec les fonctions qui ont déjà des arguments par défaut.
def add(a, b=10): return a + b # Fix b to 20 add_with_20 = partial(add, b=20) print(add_with_20(5)) # Output: 25
Vous pouvez utiliser partial avec des bibliothèques comme Pandas pour simplifier les opérations répétitives.
from functools import partial
partial(func, *args, **kwargs)
def power(base, exponent): return base ** exponent # Create a square function by fixing exponent = 2 square = partial(power, exponent=2) # Now, square() only needs the base print(square(5)) # Output: 25 print(square(10)) # Output: 100
def greet(greeting, name): return f"{greeting}, {name}!" # Fix the greeting say_hello = partial(greet, greeting="Hello") say_goodbye = partial(greet, greeting="Goodbye") print(say_hello("Alice")) # Output: Hello, Alice! print(say_goodbye("Alice")) # Output: Goodbye, Alice!
L'utilisation de functools.partial peut simplifier et nettoyer votre code, en particulier lorsqu'il s'agit d'appels de fonction répétitifs ou de fonctions d'ordre supérieur. Faites-moi savoir si vous souhaitez plus d'exemples ou de cas d'utilisation avancés !
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!