staticmethod and namespaces

darnzen darnzen at gmail.com
Fri Feb 26 00:07:55 EST 2010


Having an odd problem that I solved, but wondering if its the best
solution (seems like a bit of a hack).

First off, I'm using an external DLL that requires static callbacks,
but because of this, I'm losing instance info. It could be import
related? It will make more sense after I diagram it:

#Module main.py
from A import *

class App:
    def sperg(self):
         self.a = A()

app = App()
[main loop and such]
 -----------------------------
# Module A.py
import main
class Foo:
      Selves=[]
     def __init__(self):
               Foo.Selves.append(self)
     @staticmethod
     def chum_callback(nType, nP):
               # Need to access function / data in app instance
               app.sperg(nP)
               # Need to access func data in Foo
               # I'm pulling 'self' ouf of list made in constructor
               self = Foo.getSelf(nP)

     def getSelf(nP):
               return self.Selves[nP]

---------------------------------------------------------------------
So basically I added a list of instances to the base class so I can
get at them from the staticmethod.
What's bothering me the most is I can't use the global app instance in
the A.py module.

How can I get at the app instance (currently I'm storing that along
with the class instance in the constructor)?
Is there another way to do this that's not such a hack?

Sorry for the double / partial post :(



More information about the Python-list mailing list