Skip to content

spam #144671

Description

@quanghuynh10111-png

I happened to notice that there might be a small point to adjust. The updated equivalent code manager.__enter__ could look up __enter__ in the instance attributes, but the with-statement does not.

importsysclassCM:
def__init__(self):
def__enter__():
passdef__exit__(*exc_details):
passself.__enter__=__enter__self.__exit__=__exit__# Not works: TypeError: 'CM' object does not support the context manager protocol (missed __exit__ method)withCM():
pass# Worksmanager=CM()
enter=manager.__enter__exit_=manager.__exit__value=enter()
hit_except=Falsetry:
TARGET=valueexcept:
hit_except=Trueifnotexit(*sys.exc_info()):
raisefinally:
ifnothit_except:
exit_(None, None, None)

Originally posted by @tanloong in #144472 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions