Am 18.06.2012 09:10 schrieb Prashant:
class Shape(object):
     def __init__(self, shapename):
         self.shapename = shapename
     def update(self):
         print "update"

class ColoredShape(Shape):
     def __init__(self, color):
         Shape.__init__(self, color)
         self.color = color
         print 1
         print 2
         print 3
         self.update()

User can sub-class 'Shape' and create custom shapes. How ever user must call 
'self.update()' as the last argument when ever he is sub-classing 'Shape'.
I would like to know if it's possible to call 'self.update()' automatically 
after the __init__ of sub-class is done?

Cheers

I would construct it this way:

class Shape(object):
    def __init__(self, *args):
        self.args = args
        self.init()
        self.update()
        # or: if self.init(): self.update()
    def init(self):
        return False # don't call update
    def update(self):
        print "update"
    @propery
    def shapename(self): return self.args[0]

class ColoredShape(Shape):
     def init(self):
         print 1, 2, 3
         self.update()
         return True
     @property
     def color(self): return self.args[1]


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

Reply via email to