Inheritance and delegation problem.

Quinet, Joel joel.quinet at be.unisys.com
Thu Nov 21 16:56:32 EST 2002


Hi all,

I have an object using delegation to another one by replacing __getattr__
and __setattr__.  It works fine.  now, I have to do it a thread, I have
added the threading inheritance.
My problem is the threading.__init__ methode is NOT call apparently due to
__getattr__ and __setattr__ redefinition.

How can I do that ?

Thanks for help
Joel



class ConfigPyroServer(threading.Thread):
    __instanceMarketsConfigParser = MarketsConfigParser()

    def __init__(self, group=None, target=None, name=None, args=(),
kwargs=''):
        threading.Thread.__init__(self, group=None, target=None, name=None,
args=(), kwargs='')
        self.sortie = 0
        self.cond = EIA.Common.pyroserver.ConditionCounter()

    def run(self):
        self.serverP = EIA.Common.pyroserver.PyroServer(
self.getPyroServerNameServerHostName(), ':' +
self.getPyroServerObjectGroupName() )
        self.serverP.createGroup( ':' + self.getPyroServerObjectGroupName()
)
        self.serverP.registerObjectPersistent(
PyroInterfaceMarketsConfigParser, 'Config')
        while (self.sortie == 0):
            self.serverP.requestLoop( cond = self.cond.cond )
            print 'Looping'
        print 'Stop looping'
        self.serverP.disconnect()
        self.serverP.shutdown()

    def __getattr__(self, attr):
        return getattr(self.__instanceMarketsConfigParser, attr)
    def __setattr__(self, attr, value):
        return setattr(self.__instanceMarketsConfigParser, attr, value)

    def stop(self):
        self.sortie = 1





More information about the Python-list mailing list