Message150092
| Author | ncoghlan |
|---|---|
| Recipients | Julian, eric.araujo, eric.snow, giampaolo.rodola, ncoghlan, nikratio, pitrou, rhettinger, smarnach |
| Date | 2011-12-22.12:23:15 |
| SpamBayes Score | 0.0010876528 |
| Marked as misclassified | No |
| Message-id | <1324556596.68.0.701521354797.issue13585@psf.upfronthosting.co.za> |
| In-reply-to |
| Content | |
|---|---|
The comparison to Go's defer statement is interesting, though: ContextStack.register basically *is* the same as defer. While a nested with statement is a better option in Python, if we ignore that for the moment, you *could* write that simply copying example:
with ContextStack() as stack:
src = open(source)
stack.register(src.close)
dest = open(destination, 'w')
stack.register(dest.close)
copy(src, dest)
However, since ContextStack is just an ordinary context manager class, you have a lot of flexibility in what you do with it (particularly once I add the preserve() API to let you deliberately *skip* the cleanup steps by transferring them to a new ContextStack object) |
|
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2011-12-22 12:23:16 | ncoghlan | set | recipients: + ncoghlan, rhettinger, pitrou, giampaolo.rodola, eric.araujo, nikratio, Julian, eric.snow, smarnach |
| 2011-12-22 12:23:16 | ncoghlan | set | messageid: <1324556596.68.0.701521354797.issue13585@psf.upfronthosting.co.za> |
| 2011-12-22 12:23:16 | ncoghlan | link | issue13585 messages |
| 2011-12-22 12:23:15 | ncoghlan | create | |