static methods and meta classes
Rod Mancisidor
rmancisidor at austin.rr.com
Fri Jul 13 17:26:43 EDT 2001
For reasons that are a bit complicated to explain I have developed a program
that passes classes around quite a bit as parameters. I now need to
associate methods that can be invoked on the class objects themselves as
opposed to the instances of the class. As an example, for a given class:
class Foo:
def f(self, param): return param + 1
I need to invoke Foo.f(10). This obviously won't work given that f is not a
static method. So I thought I could to this:
class MetaFoo:
def f(self, param): return param + 1
class Foo:
__class__ = MetaFoo
In the hope that python could think of Foo as a class that is also an
instance of MetaFoo and allow me to invoke:
Foo.f(10)
This does not work. I wonder why, every other undocumented crazy thing I
have tried in Python works. Does anyone know how to trick Python into
supporting static methods?
If you have a reply and can also send it to rod at mancisidor.com I would
appreciate it.
Thanks
More information about the Python-list
mailing list