Bjoern Schliessmann schrieb: > Thomas Guettler wrote: > > > I suggest that at least lists, tupples, sets, dictionaries and > > strings get a len() method. > > Why?
Pro: Because it makes the API more monotonous and more aligned with all other OO languages that exist now and in future. It also helps any written and unwritten IDE providing a method by means of autocompletion. It ends endless debates with Java/C++/C# etc. and newbie Python programmers about this minor issue. Contra: Having both __len__ ( for providing a generic function by duality ) and len in the API is unpleasant. But maybe one can drop all __special__ methods and use a decorator to express duality between methods and functions? class M: @generic def foo(self): print "foo" >>> foo(M()) # equals M().foo() "foo" And since we are at it. Why not also dropping __add__, __radd__, __plus__ etc. for: class M: def binary+(self, other): # replaces __add__ ... def r_binary+(self, other): # replaces __radd__ ... def unary+(self, other): # replaces __plus__ ... -- http://mail.python.org/mailman/listinfo/python-list