Hacker News new | ask | show | jobs
by zb 2914 days ago
It's the same for classes that define it like:

    def __enter__(self):
        return self
which is a common pattern (used by open()), but there's no requirement that __enter__() return the same object.

In cases where __enter__() does something different, the assignment expression and the 'as' variable would have different values (the object of the 'with' statement, x, and the result of calling x.__enter__(), respectively).