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