[Python-Dev] UNPACK_LIST & UNPACK_TUPLE

Barry A. Warsaw bwarsaw@beopen.com
Sat, 5 Aug 2000 19:52:05 -0400 (EDT)


>>>>> "TW" == Thomas Wouters <thomas@xs4all.net> writes:

    TW> I'm a tad confused about the 'UNPACK_LIST' and 'UNPACK_TUPLE'
    TW> opcodes. There doesn't seem to be a difference between the
    TW> two, yet the way they are compiled is slightly different (but
    TW> not much.) I can list all the differences I can see, but I
    TW> just don't understand them, and because of that I'm not sure
    TW> how to handle them in augmented assignment. UNPACK_LIST just
    TW> seems so redundant :)

    TW> Wouldn't it make sense to remove the difference between the
    TW> two, or better yet, remove UNPACK_LIST (and possibly rename
    TW> UNPACK_TUPLE to UNPACK_SEQ ?)  We already lost bytecode
    TW> compability anyway!

This is a historical artifact.  I don't remember what version it was,
but at one point there was a difference between

    a, b, c = gimme_a_tuple()

and

    [a, b, c] = gimme_a_list()

That difference was removed, and support was added for any sequence
unpacking.  If changing the bytecode is okay, then there doesn't seem
to be any reason to retain the differences.

-Barry