On 2018-07-22 10:08, Ben Finney wrote:
INADA Naoki <songofaca...@gmail.com> writes:

Please don't refer the FAQ entry.
See this: https://bugs.python.org/issue27671

Interesting. Thanks for raising that bug report.

I offer my text as a starting point for a better explanation:

     Because ‘len’ works with *any* sequence, not only lists. To
     implement it as a method of each sequence type, it would have to be
     implemented on each type separately, which is a design that is
     needlessly more complex.

     This is common in Python: it uses so-called “duck typing”
     <URL:https://docs.python.org/3/glossary.html#term-duck-typing>,
     where the way an object behaves is more important than its type.
     Because “what is the length of this object” is a question valid for
     a broad variety of types, the design decision was made to allow it
     to accept any type for which that query makes sense.

Feel free to use that (or something derived from it) to improve the
documentation as you suggest.

Doesn't it have to be implemented on each type anyway?

The advantage is that it's enforces consistency.

In Java (or is it C#?) I seem to remember that some classes have a .Length attribute, some have a .Length() method, and some have a .Count() method.

In Python they're all len(...).
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to