On Wed, Apr 04, 2012 at 12:52:00PM -0700, Ethan Furman wrote: > Oleg Broytman wrote: > >On Wed, Apr 04, 2012 at 11:03:02AM -0700, Ethan Furman wrote: > >>Oleg Broytman wrote: > >>> . Pythonic equivalent of "get_clock(THIS) or get_clok(THAT)" is > >>> > >>>for flag in (THIS, THAT): > >>> try: > >>> clock = get_clock(flag) > >>> except: > >>> pass > >>> else: > >>> break > >>>else: > >>> raise ValueError('Cannot get clock, tried THIS and THAT') > >> > >>Wow -- you'd rather write nine lines of code instead of three? > >> > >>clock = get_clock(THIS) or get_clock(THAT) > >>if clock is None: > >> raise ValueError('Cannot get clock, tried THIS and THAT') > > > > Yes - to force people to write the last two lines. Without forcing > >most programmers will skip them. > > Forced? I do not use Python to be forced to use one style of > programming over another. Then it's strange you are using Python with its strict syntax (case-sensitivity, forced indents), ubiquitous exceptions, limited syntax of lambdas and absence of code blocks (read - forced functions), etc. > And it's not like returning None will allow some clock calls to work > but not others -- as soon as they try to use it, it will raise an > exception. There is a philosophical distinction between EAFP and LBYL. I am mostly proponent of LBYL. Well, I am partially retreat. "Errors should never pass silently. Unless explicitly silenced." get_clock(FLAG, on_error=None) could return None. Oleg. -- Oleg Broytman http://phdru.name/ phd at phdru.name Programmers don't die, they just GOSUB without RETURN.
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