[Python-ideas] with expression
Ed Kellett
edk141 at gmail.com
Sun Feb 23 12:13:45 CET 2014
More information about the Python-ideas mailing list
Sun Feb 23 12:13:45 CET 2014
- Previous message: [Python-ideas] with expression
- Next message: [Python-ideas] decorator syntax limitation
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 20 February 2014 18:50, Yann Kaiser <kaiser.yann at gmail.com> wrote: > ... some uses I've thought of: # current: try: with open('foo.txt', 'r') as f: thing = f.read() except IOError: thing = 'default' # except-expression: with open('foo.txt', 'r') as f: thing = f.read() except IOError: 'default' # with-expression: thing = f.read() with open('foo.txt', 'r') as f, default('default', IOError) ######### # current: try: thing = operation_may_fail() except: thing = 42 # except-expression: thing = operation_may_fail() except Exception: 42 # with-expression: thing = operation_may_fail() with computed_default(lambda: 42) ######### # current: # assuming one of these functions takes a very long time, and the other # blocks a thread you don't want to be blocking for long with some_lock: x = do_unsafe_thing() with another_lock: y = other_thing() frobnicate(x, y) # except-expression: # (no change) # with-expression: frobnicate((do_unsafe_thing() with some_lock), (other_thing() with another_lock)) ######### # current: try: os.unlink('/sbin/init') except OSError: pass # -- or -- with suppress(OSError): os.unlink('/sbin/init') # except-expression: os.unlink('/sbin/init') except OSError: None # (PEP 463 says you should use a with statement) # with-expression: os.unlink('/sbin/init') with suppress(OSError)
- Previous message: [Python-ideas] with expression
- Next message: [Python-ideas] decorator syntax limitation
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-ideas mailing list