Samuele Pedroni <pedronis at bluewin.ch> writes: [...] > maybe this is too much DWIMish, but it occurred to me that a further > option would be for the semantics to be: > > var = expr > > if hasattr(var, "__enter__"): > var.__enter__() > > try: > suite > finally: > if hasattr(var, "__exit__"): > var.__exit__() > elif hasattr(var, "close"): # consider also close as a synonym of __exit__ > var.close() > > I'm not proposing to do without __exit__, I recall the next/__next__ > debate, but I'm wondering if this is well documented, how many times > considering close a synomym of __exit__ would do the wrong thing, such > that the user would have to hide close somehow to use 'with' & some > object, and this wrt the times someone would need a wrapper to have > __exit__ trigger a close. > > I don't think it is worth to have a debate right now, still this > should maybe be added to the PEP as an option to consider. FWIW, I think this has come up before. For *me*, I think having less magic is worth the pain of adding "__exit__ = close" to a few class statements. Do you want to add "release" as a synonym too? I don't. Cheers, mwh -- This makes it possible to pass complex object hierarchies to a C coder who thinks computer science has made no worthwhile advancements since the invention of the pointer. -- Gordon McMillan, 30 Jul 1998
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