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

Reply via email to