[Python-Dev] defaultdict and on_missing() (original) (raw)

Brett Cannon brett at python.org
Wed Mar 1 20:02:19 CET 2006


On 2/28/06, Terry Reedy <tjreedy at udel.edu> wrote:

"Greg Ewing" <greg.ewing at canterbury.ac.nz> wrote in message news:44052636.9090709 at canterbury.ac.nz... > And you don't think there are many different > types of iterables? You might as well argue > that we don't need len() because it "only > applies to sequences". Since you mention it..., many people have asked on c.l.p why len() is a builtin function rather than a method of sequences (and other collections) (as .len, not .len). Some have suggested that it should be the latter. The answers justifying the status quo have been twofold. 1. Before 2.2, not all builtin sequence types had methods (str and tuple), so they could not have a .len method. (This begs the question of why not, but that is moot now.)

Well, up until 2.2 you didn't have new-style classes which have a common base class. And if you wanted to do the length compilation only when requested, you needed a method. But now with object, we could add extra smarts to getattr or getattribute so that if spam.len is requested it calls spam.__next__() for you, basically a poor-man's property. Or, if spam.len is defined, return that.

But moving over to more attributes for how we access basic interfaces seems great to me.

-Brett



More information about the Python-Dev mailing list