Lawrence Oluyede wrote: > "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> writes: > > >>However, I wonder why L.sort() don't return the reference L, the >>performance of return L and None may be the same. > > > It's not "the same". sort() does not return anything.
Yes it does : it returns the None object. > >>Why? > > I've just explained to you and so the others: by default operations on mutable > objects are in place. this is pure non-sens : class MyList(list): def sort(self): return sorted(self) This is a mutable object, and the sort() is not in place. class MyObj(object): def __init__(self, name): self.name = name def sayHello(self): return "hello from %s" self.name This is another mutable object, and I fail to see how 'in place' could sensibly have any meaning when applied to sayHello(). Also, and FWIW, the fact that a method modifies the object it's called on doesn't technically prevent it from returning the object: class MyOtherList(list): def sort(self, *args, **kw): list.sort(self, *args, **kw) return self > s = "abc" > s.upper() > > does return another string. String are immutable references. Strings are immutable *objects*. -- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in '[EMAIL PROTECTED]'.split('@')])" -- http://mail.python.org/mailman/listinfo/python-list