Nagarajan <[EMAIL PROTECTED]> wrote:

> 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
>>> 
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to