I am trying unsuccessfully to remove some methods from an instance,
based on values passed in to the constructor as in the following
example:

#===============================================================
class A(object):

        def __init__(self, id):
                self._id = id
                return

        def clean(self):
                if (self._id == 1):
                        del self.test1
                elif (self._id == 2):
                        del self.test2
                        pass
                return

        def test1(self):
                print "in test1"
                return

        def test2(self):
                print "in test2"
                return

#=============================================================================
if (__name__ == '__main__'):
        try:
                a = A(1)
                a.clean()
                a.test2()
                a.test1()
        except AttributeError, exc:
                import traceback
                traceback.print_exc()
                pass

#==================================================================
I get the following error:
Traceback (most recent call last):
  File "DynamicMethods.py", line 30, in ?
    a.clean()
  File "DynamicMethods.py", line 11, in clean
    del self.test1
AttributeError: test1

With the older python classes I could have done:
    self.__class__.__dict__[''test1"] to achieve the desired result.

I appreciate any help you could provide with this.

Thanks.

Amit Gupta

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to