Python utilise le module de génération de fonction partielle functools fonction partielle

Le soi-disant fonction partielle qui est prédéterminée en fonction de paramètres fixes dans la programmation fonctionnelle nous avons souvent utilisé, où l' on regarde en utilisant le module méthode partielle de génération de fonction de fonctions partielles functools python
python fournit un procédé pour fonction de la fonction de propriétés fixes (pas la même en fonction de la polarisation mathématique)

# 通常会返回10进制
int('12345')  # print 12345 
 
# 使用参数 返回 8进制
int('11111', 8)  # print 4681

Chacun avait ajouter un paramètre est trop de problèmes, functools fournit des méthodes partielles

import functools
 
foo = functools.partial(int, base=8)
 
foo('11111')  # print 4681

Il génère un paramètre fixe de la nouvelle fonction par ce procédé.

Supposons que vous voulez convertir un grand nombre de chaîne binaire, chaque int entrant (x, base = 2) est très difficile, donc nous avons pensé, vous pouvez définir une int2 de fonction (), la passe par défaut dans la base = 2:

def int2(x, base=2):
  return int(x, base)

De cette façon, nous convertissons le binaire est très pratique:

>>> int2('1000000')
64
>>> int2('1010101')
85

functools.partial est de nous aider à créer une fonction partielle, ne pas besoin de notre propre définition int2 (), vous pouvez directement utiliser le code suivant pour créer une nouvelle fonction int2:

>>> import functools
>>> int2 = functools.partial(int, base=2)
>>> int2('1000000')
64
>>> int2('1010101')
85

Ainsi, un bref résumé du rôle de functools.partial est de mettre certains paramètres à une fonction fixe (qui est, définissez la valeur par défaut), retourne une nouvelle fonction, appeler cette nouvelle fonction sera plus facile.

A pris note que la nouvelle int2 la fonction ci-dessus, juste réinitialiser la valeur par défaut des paramètres de base est 2, mais d'autres valeurs peuvent être transmis dans l'appel de fonction:

>>> int2('1000000', base=10)
1000000

Enfin, lorsque vous créez une fonction partielle, vous pouvez réellement recevoir objet de fonction, * args et ** kw ces trois paramètres, lorsqu'il est passé:

int2 = functools.partial(int, base=2)

En fait, la base fixe, la fonction int () arguments de mot-clé, à savoir:

int2('10010')

Il est équivalent à:

kw = { 'base': 2 }
int('10010', **kw)

Lorsque entrant:

max2 = functools.partial(max, 10)

En fait, tout comme 10 * partie args est automatiquement ajoutée à la gauche, qui est la suivante:

max2(5, 6, 7)

Il est équivalent à:

args = (10, 5, 6, 7)
max(*args)

Enfin, je recommande une bonne réputation collecte de python [ Cliquer ici pour entrer ], il y a beaucoup de voitures anciennes compétences d' apprentissage, l' expérience d' apprentissage, les techniques d'entrevue, l' expérience en milieu de travail et d' autres part, plus nous avons soigneusement préparé les informations d' introduction à base zéro sur les données réelles du projet méthode, tous les jours, les programmeurs expliquent le moment la technologie Python, de partager une partie de l'apprentissage et de la nécessité de faire attention aux petits détails

Publié 44 articles originaux · louange gagné 56 · vues + 60000

Je suppose que tu aimes

Origine blog.csdn.net/haoxun10/article/details/104909107
conseillé
Classement