Paul Moore <lists@morpheus.demon.co.uk> writes: > So, to offer a unified proposal, I'd suggest the following syntax: > > with [ var1 [, var2, ... ] = ] expr1 [, expr2 , ... ]: > suite > > This is equivalent to > > var1, var2, ... = expr1, expr2, ... > > if hasattr(var1, "__enter__"): > var1.__enter__() > if hasattr(var2, "__enter__"): > var2.__enter__() > ... > > try: > try: > suite > > except: > # Handwave here for now > > finally: > ... > var2.__exit__() > var1.__exit__() IMO if you want multiple controllers for a with statement you should just nest the withs: with var1 = expr1: with var2 = expr2: suite This makes the order in which the methods of the varN will be called obvious. > In this, any varN can be omitted and a dummy hidden variable is > used. Meaning something like with var1, , var3 = expr1, expr2, expr3: suite I guess. Urgs. You can't normally omit assignment targets on the left hand side of a sequence unpacking in python. I don't see why this should be allowed for with. Nested withs handle this in a cleaner way as well, IMO. Bernhard -- Intevation GmbH http://intevation.de/ Sketch http://sketch.sourceforge.net/ MapIt! http://www.mapit.de/
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4