[Python-Dev] .len() instead of __len__() (was: iterator API in Py3.0)
Oleg Broytmann
phd at mail2.phd.pp.ru
Sun Mar 5 15:44:17 CET 2006
Hello!
On Sat, Mar 04, 2006 at 04:31:26PM -0500, Phillip J. Eby wrote:
> I'm not sure that "more object-oriented" should be equated with "good" in
> this context, or indeed any context. :)
I am sure it is.
> A function is no more or less
> polymorphic than a method in any case, especially if the function is
> normally delegating to a slot or special method in any case.
Advantages of a method over a function:
-- a method is a more natural way to query or manipulate objects;
-- a direct method call is faster than two-level call (len() => .__len__());
-- unnecessary cluttering of builtin namespace; the namespace should(1)
contains only really global functions (__import__(), eval(), etc.)
What are the advantages of a function over a method? What are
disadvantages of a direct .len() instead of .__len__()?
Footnote:
(1) I am a perfectionist and I partially disagree with "practicality beats
purity"; I would really love a small uncluttered builtin namespace in
Python.
Oleg.
--
Oleg Broytmann http://phd.pp.ru/ phd at phd.pp.ru
Programmers don't die, they just GOSUB without RETURN.
More information about the Python-Dev
mailing list