4 ms·
Ha, awesome! I went for an exact transliteration although if I were to use this idea for real I would probably do the assignment explicitly in the body. I think
by reinhardt 14y ago
Ha, awesome! I went for an exact transliteration although if I were to use this idea for real I would probably do the assignment explicitly in the body. I think this looks a bit more pythonic:
@contextmanager
def restoring(obj, attr):
old_val = getattr(obj, attr)
yield
setattr(obj, attr, old_val)
x.a = 1
with restoring(x, "a"):
print x.a
x.a = 2
print x.a
print x.a