cptnwillard wrote: > 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?
If you want it to be callable you can subclass: >>> class static(staticmethod): ... def __call__(self, *args, **kw): ... return self.__get__(object)(*args, **kw) ... >>> class A(object): ... @static ... def f(x="yadda"): print x ... f() ... yadda >>> A.f() yadda >>> A().f() yadda Peter -- http://mail.python.org/mailman/listinfo/python-list