manually implementing staticmethod()?

7stud bbxx789_05ss at
Wed Mar 28 23:01:04 CEST 2007


Can someone show me how to manually implement staticmethod()?  Here is
my latest attempt:
def smethod(func):

        def newFunc():

        def newGet():
                print "new get"

        newFunc.__get__ = newGet

        return newFunc

class Test(object):

        def show(msg):
                print msg
        show = smethod(show)"hello")
...but I keep getting the error:

TypeError: unbound method newFunc() must be called with Test instance
as first argument (got str instance instead)

I think I need to intercept the function's __get__() method in order
to block creation of the method object, which requires that the
unbound method call provide an instance.

More information about the Python-list mailing list