-- http://www.ironpythoninaction.com On 7 Aug 2009, at 12:06, ilya <ilya.nikokoshev at gmail.com> wrote: > I believe people now discuss this both on python-dev and python-ideas, > though since I'm new to both lists, I can't really tell where this > belongs. > It definitely belongs on the ideas list... Michael > I played a little with this syntax, my try_ function and @catch > decorator (which are at http://mit.edu/~unknot/www/try_cond.py): > > # x = float(string) except float('nan') if ValueError > x = try_(float, string, except_ = float('nan'), if_ = ValueError) > > @catch(ValueError = float('nan')) > def x1(): return float(string) > > # y = float(string) except ValueError: float('nan') > y = try_(float, string, { ValueError: float('nan') }) > > @catch({ValueError: float('nan')}) > def y1(): return float(string) > > # try: > # z = open(string, 'r') > # except IOError as e: > # if e.errno == 2: > # z = 'not_exist' > # else: > # raise > # > z = try_(open, string, 'r', iocatcher({2: 'no file!'})) > > @catch(iocatcher({2: 'nothing!'})) > def z1(): return open(string, 'r') > > Here are my overall feelings: > > (1) it would be interesting to come up with syntax for except/if > clause, but it's not obvious how to make one and this fact itself may > kill the idea. > (2) the more reasonable approach to things like this is by defining a > separate block and then performing a "catch" operation with it. > Unfortunately, this looks very clumsy as currently this can only be > done by defining a separate function. I think code blocks are a good > direction to explore. > > 2009/8/7 Kristján Valur Jónsson <kristjan at ccpgames.com>: >> Unless I am very much mistaken, this is the approach Ruby takes. >> Everything is an expression. For example, the value of a block is >> the value of >> The last expression in the block. >> >> I've never understood the need to have a distinction betwen >> statements and expressions, not when expressions can have side >> effects. It's like that differentce between procedures and >> functions in pascal that only serves to confuse >> >> K >>> -----Original Message----- >>> From: python-dev-bounces+kristjan=ccpgames.com at python.org >>> [mailto:python-dev-bounces+kristjan=ccpgames.com at python.org] On >>> Behalf >>> Of Xavier Morel >>> Sent: 6. ágúst 2009 10:25 >>> To: python-dev at python.org >>> Subject: Re: [Python-Dev] (try-except) conditional expression >>> similar >>> to (if-else) conditional (PEP 308) >> >> >>> Wouldn't it be smarter to fix the issue once and for all by looking >>> into making Python's compound statements (or even all statements >>> without restrictions) expressions that can return values in the >>> first >>> place? Now I don't know if it's actually possible, but if it is the >>> problem becomes solved not just for try:except: (and twice so for >>> if:else:) but also for while:, for: (though that one's already >>> served >>> pretty well by comprehensions) and with:. >>> >> >> _______________________________________________ >> Python-Dev mailing list >> Python-Dev at python.org >> http://mail.python.org/mailman/listinfo/python-dev >> Unsubscribe: http://mail.python.org/mailman/options/python-dev/ilya.nikokoshev%40gmail.com >> > _______________________________________________ > Python-Dev mailing list > Python-Dev at python.org > http://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: http://mail.python.org/mailman/options/python-dev/fuzzyman%40voidspace.org.uk
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