Expliquant Python '__enter__ " et " __exit__'

J'ai vu ça dans un code. Ça veut dire quoi?

    def __enter__(self):
        return self

    def __exit__(self, type, value, tb):
        self.stream.close()

from __future__ import with_statement#for python2.5 

class a(object):
    def __enter__(self):
        print 'sss'
        return 'sss111'
    def __exit__(self ,type, value, traceback):
        print 'ok'
        return False

with a() as s:
    print s


print s
  • Une bonne explication ici : effbot.org/zone/python-with-statement.htm
  • Modifiant le code de la question est généralement une mauvaise idée, surtout quand il y a des erreurs dans le code. Cette question a été posée avec Py2 à l'esprit, et il n'y a pas de raison de le mettre à jour à Py3.
InformationsquelleAutor zjm1126 | 2009-12-31