In this case, the interpretation of an arbitrary object as a boolean
is peculiar for python.  An empty list is a real, existing object, and
the supposition that [] be false is counter-intuitive.  It can be
learnt, and the shorthand may be powerful when it is, but it will
confuse many readers.

Once I wrote something like:

def f(x=None):
   if x:
      print x
   else:
      print "I have no value"


The caller of that function was something like f(cos(2*theta)) where theta come from some computations.

Well. When it turned out that theta was equal to pi/4, I got "I have no value". I spent a while to figure out the problem :)

Conclusion: the boolean value of an object is to be used with care in order to tests if an optional parameter is given or not (when default value is None).


Have a good noon
Laurent
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to