Inheritance in python

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • python101
    New Member
    • Sep 2007
    • 90

    Inheritance in python

    I have a python code
    [code=python]
    class Name:
    def __init__(self, name, age):
    self.name = name
    self.age = age

    def Information(sel f):
    print ' Name: ', self.name
    print ' Age: ', self.age


    class Identity:
    def __init__(self, name, age, ssn):
    self.name = name
    self.age = age
    self.ssn =ssn

    def Information(sel f):
    print ' Name: ', self.name
    print ' Age: ', self.age
    print ' SSN: ', self.ssn

    [/code]

    I want to use inheritance structure, Name as parent class, Identity as child class. Without chaning the parent class code, how can I rewrite the child class code (Identity class) so I can reuse all functions from parent class?

    I can try
    [code=python]
    class Identity(Name):
    def __init__(self, name, age, ssn):
    Name.__init__(s elf)
    self.name = name
    self.age = age
    self.ssn =ssn

    def Information(sel f):
    print ' Name: ', self.name
    print ' Age: ', self.age
    print ' SSN: ', self.ssn
    [/code] But my code doesn't take the advantage of inheritance
  • bvdet
    Recognized Expert Specialist
    • Oct 2006
    • 2851

    #2
    Originally posted by python101
    I have a python code
    [code=python]
    class Name:
    def __init__(self, name, age):
    self.name = name
    self.age = age

    def Information(sel f):
    print ' Name: ', self.name
    print ' Age: ', self.age


    class Identity:
    def __init__(self, name, age, ssn):
    self.name = name
    self.age = age
    self.ssn =ssn

    def Information(sel f):
    print ' Name: ', self.name
    print ' Age: ', self.age
    print ' SSN: ', self.ssn

    [/code]

    I want to use inheritance structure, Name as parent class, Identity as child class. Without chaning the parent class code, how can I rewrite the child class code (Identity class) so I can reuse all functions from parent class?

    I can try
    [code=python]
    class Identity(Name):
    def __init__(self, name, age, ssn):
    Name.__init__(s elf)
    self.name = name
    self.age = age
    self.ssn =ssn

    def Information(sel f):
    print ' Name: ', self.name
    print ' Age: ', self.age
    print ' SSN: ', self.ssn
    [/code] But my code doesn't take the advantage of inheritance
    It does inherit. You need to pass name and age to Name.__init__() .[code=Python]class Identity(Name):
    def __init__(self, name, age, ssn):
    Name.__init__(s elf, name, age)
    self.ssn = ssn

    def Information(sel f):
    print ' Name: ', self.name
    print ' Age: ', self.age
    print ' SSN: ', self.ssn

    >>> b = Identity("John Smith", 28, "413-88-5555")
    >>> b.Information()
    Name: John Smith
    Age: 28
    SSN: 413-88-5555
    >>> [/code]

    Comment

    Working...