Introduire l'opérateur pipe et la composition de fonction à Python (provisoire)

supposition

class F:
    def __init__(self, f):
        self.f = f

    def __call__(self, *args, **kwargs):
        return self.f(*args, **kwargs)

    def __mul__(self, other):
        def _f(*args, **kwargs):
            return self.f(other(*args, **kwargs))
        return _f

    def __ror__(self, other):
        return self.f(other)


@F
def f(x):
    return x + 1

@F
def g(x):
    return x * x

Consécutif

>>> 1 | f
2

>>> 2 | g
4

>>> 1 | f | g
4

>>> (f * g)(1)
2

>>> (g * f)(1)
4

Recommended Posts

Introduire l'opérateur pipe et la composition de fonction à Python (provisoire)
Synthèse de fonctions et application en Python
J'ai essayé la synthèse de fonctions et le curry avec python
[Python] Comment utiliser la fonction de hachage et taple.
Python 3.6 sous Windows ... et vers Xamarin.
[Introduction à Udemy Python3 + Application] 49. Citation de fonction et déclaration de valeur de retour
Journalisation Python et vidage vers json
Sélénium et python pour ouvrir Google
Comment utiliser la fonction zip de python
[Python] Différence entre fonction et méthode
[Python] Arguments de fonction * (étoile) et ** (étoile double)
[Python] Comment utiliser la fonction enumerate (extraire le numéro d'index et l'élément)
Comment empaqueter et distribuer des scripts Python
De Python à l'utilisation de MeCab (et CaboCha)
[Route vers Python intermédiaire] Utiliser des opérateurs ternaires
Comment installer et utiliser pandas_datareader [Python]
[Introduction à l'application Udemy Python3 +] 48. Définition des fonctions
[python] Comment utiliser __command__, explication des fonctions
Fractal pour faire et jouer avec Python
[Introduction à l'application Udemy Python3 +] 45. fonction enumerate
[Introduction à l'application Udemy Python3 +] 41. fonction d'entrée
Fonction pour enregistrer les images par date [python3]
Portage et modification du solveur de doublets de python2 vers python3.
[Introduction à l'application Udemy Python3 +] 44. fonction range
[Introduction à l'application Udemy Python3 +] 46. fonction zip
Lire Python csv et exporter vers txt
Fonction Lambda pour effectuer une sauvegarde AMI (python)
python: Comment utiliser les locals () et globals ()
Fonction tyrolienne pour acheter et vendre des actions
Introduire la bibliothèque Python TRML2PDF dans MacOSX (10.11.xx)
[Python] Comment calculer MAE et RMSE
Comment utiliser le zip Python et énumérer
Compressez les données python et écrivez sur sqlite
Comment utiliser is et == en Python
[Python] Présentez UIKit3 au projet Django
Introduisez postfix dans WSL pour relayer le courrier adressé à Office365 et le traiter avec Python
fonction python ①
[Python] fonction
Je veux obtenir le nom du fichier, le numéro de ligne et le nom de la fonction dans Python 3.4
fonction python ②
Introduction à la définition de la fonction Thano et à la différenciation automatique
Grattage de la nourriture avec python et sortie en CSV
MessagePack-Try pour lier Java et Python avec RPC
Enregistrer automatiquement les arguments de fonction dans argparse en Python
Comment générer une séquence en Python et C ++
[Introduction à Python3 Jour 12] Chapitre 6 Objets et classes (6.3-6.15)
Texte de l'image et publication sur slack (python slackbot)
[Python] Comment lire les données de CIFAR-10 et CIFAR-100
J'ai comparé "type de dictionnaire python" et "fonction excel"
[Introduction à Python3, jour 22] Chapitre 11 Traitement parallèle et mise en réseau (11.1 à 11.3)
Envoyer un message à Skype et Chatwork en Python
[Introduction à l'application Udemy Python3 +] 64. Espace de noms et portée
[Introduction à Python3 Jour 11] Chapitre 6 Objets et classes (6.1-6.2)
Introduction à l'apprentissage profond ~ Fonction de localisation et de perte ~
Essayez d'utiliser tensorflow ① Créez un environnement python et introduisez tensorflow
Liste de code Python à déplacer et à mémoriser
Pour représenter la date, l'heure, l'heure et les secondes en Python
Comment tracer l'autocorrélation et l'autocorrélation partielle avec Python