On 2005-11-30, Christophe <[EMAIL PROTECTED]> wrote: > Antoon Pardon a écrit : >> On 2005-11-30, Duncan Booth <[EMAIL PROTECTED]> wrote: >> >>>Antoon Pardon wrote: >>> >>>>But lets just consider. Your above code could simply be rewritten >>>>as follows. >>>> >>>> res = list() >>>> for i in range(10): >>>> res.append(i*i) >>>> >>> >>>I don't understand your point here? You want list() to create a new list >>>and [] to return the same (initially empty) list throughout the run of the >>>program? >> >> >> No, but I think that each occurence returning the same (initially empty) >> list throughout the run of the program would be consistent with how >> default arguments are treated. > > What about that : > def f(a): > res = [a] > return res > > How can you return the same list that way ? Do you propose to make such > construct illegal ?
I don't propose anything. This is AFAIC just a philosophical exploration about the cons and pros of certain python decisions. To answer your question. The [a] is not a constant list, so maybe it should be illegal. The way python works now each list is implicitely constructed. So maybe it would have been better if python required such a construction to be made explicit. If people would have been required to write: a = list() b = list() Instead of being able to write a = [] b = [] It would have been clearer that a and b are not the same list. -- Antoon Pardon -- http://mail.python.org/mailman/listinfo/python-list