Terry Reedy <tjre...@udel.edu> wrote: > Constant tuples (a tuple whose members are all seen as constants by the > compiler) are now pre-compiled and constructed once and put into the > code object as such rather than re-constructed with each run of the code.
Sadly that's not entirely accurate. Tuples whose members are all simple constants are pre-compiled, but here's an example of a tuple whose members are all constants but doesn't get optimised: >>> def foo(): data = ( ('hello', 42), ('world', 24), ) return data >>> import dis >>> dis.dis(foo) 3 0 LOAD_CONST 5 (('hello', 42)) 4 3 LOAD_CONST 6 (('world', 24)) 6 BUILD_TUPLE 2 9 STORE_FAST 0 (data) 6 12 LOAD_FAST 0 (data) 15 RETURN_VALUE -- Duncan Booth http://kupuguy.blogspot.com -- http://mail.python.org/mailman/listinfo/python-list