Albert Hopkins: > One could imagine this getting "out of hand" e.g.
Yes, any syntax can be abused (your example isn't abusive enough). > a = 20 / len(c) > where > c = p / b > try: > b = foo(d) > where > d = bar() > except: > b = 0 > > It also begs the question, should the except: clause be written to > handle an exception raised in foo() as well as bar()? or should one also > write a try/except around bar()? This code: > a = 20 / len(c) > where > c = p / b > try: > b = foo(d) > where > d = bar() > except: > b = 0 Equals to: a = 20 / len(p / b) try: b = foo(bar()) except: b = 0 p = a / b So the answer is positive. > Usually when I'm looking at an identifier (function, class, variable) > being used, I tend to look *up* to see where it is defined. Right, the main purpose of where is to change that usual way, if you want. Note that where may also be designed to create a new scope (as in Haskell, I think), that's why I have inlined the bar and p/b. Bye, bearophile -- http://mail.python.org/mailman/listinfo/python-list