On 2010-02-05 16:22 PM, bartc wrote:

"Steve Holden" <st...@holdenweb.com> wrote in message
news:mailman.1998.1265399766.28905.python-l...@python.org...
Arnaud Delobelle wrote:
Robert Kern <robert.k...@gmail.com> writes:

I prefer Guido's formulation (which, naturally, I can't find a direct
quote for right now): if you expect that a boolean argument is only
going to take *literal* True or False, then it should be split into
two functions.

So rather than three boolean arguments, would you have eight functions?

If there's genuinely a need for that functionality, yes.

So you want a function such as drawtext(s, bold=true, italic=false,
underline=true) to be split into:

drawtext(s)
drawtextb(s)
drawtexti(s)
drawtextu(s)
drawtextbi(s)
drawtextbu(s)
drawtextiu(s)
drawtextbiu(s)

Which of course is going to be fun if the bold/italic/underline values
are not constants; instead of writing:

drawtext(s,b,i,u)

you have to say:

if b==0 and i==0 and u==0:
drawtext(s)
elif b==1 and i==0 and u==0:
drawtextb(s)

and so on. With half-a-dozen or more booleans, this becomes completely
impractical.

Then you refactor to

  drawtext(s, font)

--
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to