On Mon, Oct 12, 2009 at 10:44 AM, Nadav Chernin <nada...@qualisystems.com> wrote: > > Chris Withers wrote: > > ...becauase you were looking for: > > reversed([1,2,3,4]) > > OK, but my question is generic. Why when I use object's function that > changed values of the object, I can't to get value of it on the fly > without writing additional code? > >>>> a=[1,3,2,4] >>>> a.sort() >>>> a.reverse() >>>> a > [4, 3, 2, 1] > > Why I can't a==[1,3,2,4].sort().reverse() ?
I think it is to avoid programming mistakes. If reverse() or sort() returned the reversed or sorted list, people are prone to using them for that purpose, and you get people wondering why b = [1,2,3,4] a = b.reverse() would change the value of b. By having functions and methods have either return a value but not have a side effect (that is, changing variables or objects), or have a side effect but not return a value, one eliminates the risk that people use a function to obtain a value but do not realize its side effect. -- André Engels, andreeng...@gmail.com -- http://mail.python.org/mailman/listinfo/python-list