how to format long if conditions
Roy Smith
roy at panix.com
Sat Aug 27 12:39:02 EDT 2011
In article <mailman.457.1314428909.27778.python-list at python.org>,
Arnaud Delobelle <arnodel at 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.
More information about the Python-list
mailing list