"brad" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] | Will len(a_string) become a_string.len()?
No. I was just reading | http://docs.python.org/dev/3.0/whatsnew/3.0.html which says nothing about such a change, except for one in the opposite direction: o.next() changes to next(o) which in turn calls o.__next__(), just as len(o) calls o.__len__() | One of the criticisms of Python compared to other OO languages is that | it isn't OO enough or as OO as others or that it is inconsistent. Python is object-based and has a nice user-defined type (class) system, but I do not believe Guido has ever called it object oriented. So the comparision is besides the point even if true. | Is there a reason that len cannot be a method? It corresponds to and calls method .__len__ , when such exists. Yes, Python could have been designed differently, with no builtin functions, but is was not. Python is also a functional language with first-class generic functions. | why not a_string.len()? You are free to bypass builtins and call methods directly if you like: a_string.__len__(). But consider rewriting the following: def table(func, seq): return zip(seq, map(func,seq)) table(len, ('', (), [])) If you *really* want to be super-OO, like functionless OO languages, you can also call methods instead of using operator symbols, which in effect are names of builtin functions. Instead of a+b, write a.__add__(b). And so on. Terry Jan Reedy -- http://mail.python.org/mailman/listinfo/python-list