I filed a bug report, and here is the short answer to my question: genexps are code blocks, and code blocks cannot see variables in class scopes. Congrats to Neil Cerutti who figured it out.
Now here is another one for your enjoyment: class C: @staticmethod def f1(): pass F = { '1' : f1 } C().F['1']() >>> TypeError: 'staticmethod' object is not callable What do you think of this one? -- http://mail.python.org/mailman/listinfo/python-list