3 ms·
I think it's an extraordinary strength of Python that I hadn't seen your code when writing mine but that other than two variable names they're identical. Leavin
by hythloday 14y ago
I think it's an extraordinary strength of Python that I hadn't seen your code when writing mine but that other than two variable names they're identical. Leaving my comment up for demonstration of this.
- reinhardt 14y agoHa, 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