functions vs methods

MRAB python at
Sun Jul 22 11:49:03 EDT 2018

On 2018-07-22 10:08, Ben Finney wrote:
> INADA Naoki <songofacandy at> writes:
>> Please don't refer the FAQ entry.
>> See this:
> 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:>,
>      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(...).

More information about the Python-list mailing list