Szabolcs <[EMAIL PROTECTED]> writes: > Thanks for all the replies! > > Phoe6 wrote: >> 1) Return values from a function. When you return multiple values >> from a function. You store them as a tuple and access them >> individually rather then in the list, which bear the danger of being >> modified. >> Look up the standard library itself and you will find many instances. >> >> (cin, cout, cerr) = os.popen3('man man') >> >> If you had the above as list, then you might end up spoiling things >> knowingly/unknowingly. > > Could you please elaborate on this (or give an explicit example how might one > do something bad unknowingly when returning multiple values in a list)?
def f(input, defaultAnswer=[1,2,3]): if input == 1: return (4,5,6) else: return defaultAnswer print f(0).pop(), f(0).pop(), f(0).pop(), f(0) But that's a pretty pathological; just using unstructuring as in the open example above nothing bad can happen. > > Should I think of tuples simply as a safeguard and reminder (because I > consciously use them for different thing than lists, as the faq suggests)? Use them for hetoerogeneous data or when you need the immutability (so that people can't screw) 'as -- http://mail.python.org/mailman/listinfo/python-list