Article précédent
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