import contextlib
class Pituh(object):
def __enter__(self):
return "pithu"
def __exit__(self, exc_type, exc_val, exc_tb):
print("exit")
def kok(self):
print("kok")
class Spam(contextlib.AbstractContextManager, list):
def __exit__(self, exc_type, exc_value, traceback):
for i in self:
i.__exit__(exc_type, exc_value, traceback)
spam = Spam()
spam.append(Pituh())
spam.append(Pituh())
with spam as s:
kok = s[0]
print(type(kok))
kok.kok()
aW1wb3J0IGNvbnRleHRsaWIKCmNsYXNzIFBpdHVoKG9iamVjdCk6CiAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgogICAgICAgIHJldHVybiAicGl0aHUiCgogICAgZGVmIF9fZXhpdF9fKHNlbGYsIGV4Y190eXBlLCBleGNfdmFsLCBleGNfdGIpOgogICAgICAgIHByaW50KCJleGl0IikKICAgICAgICAKICAgIGRlZiBrb2soc2VsZik6CiAgICAJcHJpbnQoImtvayIpCgpjbGFzcyBTcGFtKGNvbnRleHRsaWIuQWJzdHJhY3RDb250ZXh0TWFuYWdlciwgbGlzdCk6CiAgICBkZWYgX19leGl0X18oc2VsZiwgZXhjX3R5cGUsIGV4Y192YWx1ZSwgdHJhY2ViYWNrKToKICAgICAgICBmb3IgaSBpbiBzZWxmOgogICAgICAgICAgICBpLl9fZXhpdF9fKGV4Y190eXBlLCBleGNfdmFsdWUsIHRyYWNlYmFjaykKCgpzcGFtID0gU3BhbSgpCnNwYW0uYXBwZW5kKFBpdHVoKCkpCnNwYW0uYXBwZW5kKFBpdHVoKCkpCgp3aXRoIHNwYW0gYXMgczoKICAgIGtvayA9IHNbMF0KICAgIHByaW50KHR5cGUoa29rKSkKICAgIGtvay5rb2soKQ==