Here's a simple-minded example: def dumbfunc(xs): for x in xs: print x
This function works fine if xs is a list of floats, but not if it is single float. It can be made to work as follows: def dumbfunc(xs): if isinstance(xs,(int,float,complex)): xs= [xs] for x in xs: print x Having to put such extra logic into practically every function is one of the annoying things about Python. Phillip Diez B. Roggisch-2 wrote: > > Dr. Phillip M. Feldman schrieb: >> Some aspects of the Python design are remarkably clever, while others >> leave >> me perplexed. Here's an example of the latter: Why does len() give an >> error >> when applied to an int or float? len() should always return something; in >> particular, when applied to a scalar, it should return a value of 1. Of >> course, I can define my own function like this: >> >> def mylen(x): >> if isinstance(x,int) or isinstance(x,float): return 1 >> return len(x) >> >> But, this shouldn't be necessary. > > Can you show some example of where that is actually making a piece of > code more elegant? > > Diez > -- > http://mail.python.org/mailman/listinfo/python-list > > -- View this message in context: http://www.nabble.com/len%28%29-should-always-return-something-tp24639361p24654439.html Sent from the Python - python-list mailing list archive at Nabble.com. -- http://mail.python.org/mailman/listinfo/python-list