On Sat, Apr 04, 2015 at 02:21:19PM -0500, boB Stepp wrote: > To my mind, would: > > def quit(): > print('Hello lambda world!') > sys.exit() > > and: > > widget = Button(None, text='Hello event world!', command=quit) > > be preferable Python style?
Hell yes! Using `or` to run functions purely for their side-effects (in this case, printing and exiting) makes a nice trick, but I wouldn't use for real. On the other hand, using `or` for its value is perfectly acceptable. E.g. one common idiom might be to iterate over something which might be None: for value in maybe_list or []: ... If `maybe_list` is a non-empty list, it is used; if it is an empty list, the second operand (also an empty list) is used, but that's okay since they are both empty lists; and if it is None, then the second operand is used instead. This is a reasonable idiom to use, and prior to Python 2.5 it was the closest thing the language had to a "ternary if operator". These days, the `or` idiom is less common except in old code or code that has to run on Python 2.4 or older. Instead, we might write: for value in (maybe_list if maybe_list is not None else []): ... I'm not entirely sure that's an improvement :-) -- Steve _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor