Nagarajan <na****@gmail.comwrote:
Here is what I need to achieve..
class A :
def __init__( self ):
self.x = 0
Don't use old style classes. If you are planning to use 'super' then you
must use new-style classes, so use 'object' as a base class here.
>
class B ( A ):
def __init__( self, something ):
# Use "super" construct here so that I can "inherit" x of A
self.y = something
How should I use "super" so that I could access the variable "x" of A
in B?
If you aren't worried about diamond shaped multiple inheritance
hierarchies then just use:
class B ( A ):
def __init__( self, something ):
A.__init__(self)
self.y = something
If you are then:
class B ( A ):
def __init__( self, something ):
super(B, self).__init__()
self.y = something
When you use super you usually just want the current class and current
instance as parameters. Putting that together:
>>class A(object):
def __init__( self ):
self.x = 0
>>class B ( A ):
def __init__( self, something ):
super(B, self).__init__()
self.y = something
>>obj = B(3)
obj.x
0
>>obj.y
3
>>>