On Aug 25, 9:13 am, Steven D'Aprano <steve +comp.lang.pyt...@pearwood.info> wrote: > One design principle often mentioned here (with a certain degree of > disagreement[1]) is the idea that as a general rule, you shouldn't write > functions that take a bool argument to switch between two slightly > different behaviours. > > This is a principle often championed by the BDFL, Guido van Rossum. > > Here's a Javascript-centric article which discusses the same idea, and gives > it a name: the Boolean Trap. > > http://ariya.ofilabs.com/2011/08/hall-of-api-shame-boolean-trap.html > > No doubt there are counter arguments as well. The most obvious to me is if > the flag=True and flag=False functions share a lot of code, it is poor > practice to implement them as two functions with two copies of almost > identical code.
A simple one: C and C-like languages only have arguments, not keyword- parameters. That alone makes a world of difference. Maarten -- http://mail.python.org/mailman/listinfo/python-list