In article <mailman.457.1314428909.27778.python-l...@python.org>, Arnaud Delobelle <arno...@gmail.com> wrote:
> Hi all, > > I'm wondering what advice you have about formatting if statements with > long conditions (I always format my code to <80 colums) > [...] > if (isinstance(left, PyCompare) and isinstance(right, PyCompare) > and left.complist[-1] is right.complist[0]): > py_and = PyCompare(left.complist + right.complist[1:]) > else: > py_and = PyBooleanAnd(left, right) To tie this into the ongoing, "When should I write a new function?" discussion, maybe the right thing here is to refactor all of that mess into its own function, so the code looks like: if _needs_compare(left, right): py_and = PyCompare(left.complist + right.complist[1:]) else: py_and = PyBooleanAnd(left, right) and then def _needs_compare(left, right): "Decide if we need to call PyCompare" return isinstance(left, PyCompare) and \ isinstance(right, PyCompare) and \ left.complist[-1] is right.complist[0] This seems easier to read/understand than what you've got now. It's an even bigger win if this will get called from multiple places. -- http://mail.python.org/mailman/listinfo/python-list