On Wed, Feb 26, 2014 at 12:40:59PM +1300, Greg Ewing wrote:
Steven D'Aprano wrote:
(1) __len__ can return *any* float, regardless of value, including lengths of 0.5, NAN, 1e300, etc. This is undesirable because lengths of sequences should be positive or zero whole numbers,
What about things other than sequences?
For a vector type, for example, it would make sense for len(v) to return the magnitude of the vector.
I don't think it does. Despite the similarities in names, I don't think Python the language should conflate *length of a sequence or mapping* with *arbitrary measures of length*. len(x) by historical precedent returns the length of a sequence/mapping/set, where the result returned is a non-negative integer value. If you want some other definition of length, such as the length of a vowel or the length of a polynomial, or some other metric such as Manhattan distance or Chebyshev distance, or even vector magnitude, you can create your own function or method and call it (say) length(). -- Steven