[PYTHON] Je n'ai pas eu besoin d'écrire décorateur en classe Merci contextmanager

Article précédent Yotsubato! Incroyablement cool J'aurais aimé utiliser contextmanager depuis le début sans la difficulté de décorer ...

yo.py


from contextlib import contextmanager
import random

class Prot:
    def __init__(self):
        pass

    @contextmanager
    def yoyo(self, hey):
        print('gacha.') #  __enter__
        yield hey # as
        print('Everything Done Right.') #  __exit__

    def yo_gacha(self, y):
        yo = [y*i for i in range(10)] 
        return yo[random.randint(0, 9)]    

if __name__ == '__main__':
    p = Prot()
    with p.yoyo('hey') as y:
        print(p.yo_gacha(y))

contextlib.contextmanager est un décorateur qui s'applique avec à une bonne sensation, et le divise en __enter__ et __exit__ avec yield entre les deux. Un tiret est sacrifié, mais la description est facile et très facile à comprendre Il est facile de comprendre que si vous le passez avec yield, vous pouvez le recevoir avec as. Il vaut peut-être mieux utiliser un décorateur lorsque je veux emballer diverses choses, mais j'ai appris

Recommended Posts

Je n'ai pas eu besoin d'écrire décorateur en classe Merci contextmanager
Je ne voulais pas écrire la clé AWS dans le programme
Écrire un décorateur en classe
Je veux écrire en Python! (2) Écrivons un test
Je veux écrire en Python! (3) Utiliser des simulacres
Comment utiliser la méthode __call__ dans la classe Python
J'ai créé une classe pour obtenir le résultat de l'analyse par MeCab dans ndarray avec python
J'ai écrit le code pour écrire le code Brainf * ck en python
J'ai fait une commande pour afficher un calendrier coloré dans le terminal
Écrivez un script dans Shell et Python pour vous avertir dans Slack lorsque le processus est terminé
Ecrire le test dans la docstring python
Je veux expliquer en détail la classe abstraite (ABCmeta) de Python
Je souhaite trier une liste dans l'ordre des autres listes
Divers commentaires à écrire dans le programme
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
J'ai essayé d'afficher la valeur d'altitude du DTM dans un graphique
Histoire de la voix de l'acteur Grattez Wikipedia pour voir combien d'années vous êtes devenu le doubleur de la série "Aikatsu!"
N'hésitez pas à rédiger un test avec nez (dans le cas de + gevent)
J'ai essayé de créer une classe qui peut facilement sérialiser Json en Python
[Python] A créé une classe pour jouer des vagues de péché en arrière-plan avec pyaudio
Si vous écrivez View decorator dans urls.py dans Django, la liste sera plus élevée.
Vérifiez le nombre de fois où la requête (sql) a été lancée dans django avec un test
J'ai créé une commande appdo pour exécuter des commandes dans le contexte de l'application
Je souhaite définir un cycle de vie dans la définition de tâche d'ECS
Je souhaite voir une liste de fichiers WebDAV dans le module Requêtes
J'ai recherché les compétences nécessaires pour devenir ingénieur web avec Python
Je veux créer une fenêtre avec Python
J'ai écrit une classe en Python3 et Java
Conseils pour rédiger un aplatissement concis en python
Pourquoi Python doit-il écrire un deux-points?
Comment écrire un document tuple nommé en 2020
Je veux écrire dans un fichier avec Python
Je veux afficher la progression en Python!
J'ai fait un peu de recherche sur la classe
Si vous définissez une méthode dans une classe Ruby, puis définissez une méthode dans celle-ci, elle devient une méthode de la classe d'origine.
Je ne trouve pas l'horloge tsc! ?? L'histoire d'essayer d'écrire un patch de noyau
J'ai essayé de créer une classe pour rechercher des fichiers avec la méthode Glob de Python dans VBA
Je veux écrire en Python! (1) Vérification du format de code
J'ai essayé de représenter graphiquement les packages installés en Python
Je souhaite intégrer une variable dans une chaîne Python
Je veux facilement implémenter le délai d'expiration en python
Comment écrire une interface graphique à l'aide de la commande maya
Je veux faire la transition avec un bouton sur le ballon
J'ai fait un script pour mettre un extrait dans README.md
J'ai essayé d'implémenter un pseudo pachislot en Python
Je veux échantillonner au hasard un fichier avec Python
Je veux travailler avec un robot en python.
Ecrire un histogramme à l'échelle logarithmique sur l'axe des x en python
J'ai fait une commande pour marquer le clip de la table
Lorsque vous voulez plt.save dans l'instruction for
Ne passez pas self à ProcessPoolExecutor en classe
Je veux utiliser le jeu de données R avec python
Je t'ai écrit pour regarder le signal avec Go
Notez ce que vous voulez faire à l'avenir avec Razpai
[Petite histoire] Une mesure minutieuse lorsque vous devez exécuter une fonction avant l'importation en Python
J'ai lu 10 livres liés aux données de séries chronologiques, je vais donc rédiger une critique.
Je veux voir le graphique en 3D! Je peux réaliser un tel rêve.