Click here to Skip to main content
15,890,845 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I have written a subclass but I am confused how I can make a connection between the class and subclass. I am trying to print the information of the the employee and the manager but I could not. I would be grateful if someone can help me.



class Information:
    def __init__(self,first,last,pay):

        self.first = first
        self.last = last
        self.pay = pay


    def rise(self,bonus):
        self.pay = self.pay + bonus

    def __str__(self):
        return "%s and %s and has a balance of %s" % (self.first,self.last,self.pay)

if __name__ == "__main__":
    emp1 = Information("tom","jerry",999)
    emp1.rise(89)
    print (emp1)


from information import Information
class Manager(Information):
    def __init__(self):
        Information.__init__(self)
        self.shift = shift
        self.time = time
    def __str__(self):
        return Information.__str__(self)+str(self.time) + self.shift

    if __name__ == "__main__":
        information = Information()
        print (information)
        information.time(9)
        information.title(morning)
        print (Information)



Thank you.

What I have tried:

I have tried to write the class and sub class in two different files and wanted to connect them by import but that did not work.
Posted
Updated 2-Mar-19 22:04pm

In your subclass you are calling the Information class with the wrong parameters, and non-existent function names. Take a look at 9. Classes — Python 3.7.2 documentation[^].
 
Share this answer
 
class Information:
    def __init__(self,first,last,pay):

        self.first = first
        self.last = last
        self.pay = pay


    def rise(self,bonus):
        self.pay = self.pay + bonus

    def __str__(self):
        return "%s and %s and has a balance of %s" % (self.first,self.last,self.pay)



from information import Information
class Manager(Information):
    def __init__(self,shift,time):
        Information.__init__(self)
        self.shift = shift
        self.time = time
    def __str__(self):
        return Information.__str__(self)+str(self.time) + self.shift

if __name__ == "__main__":
    emp = Information("tom","jerry",999)
    emp.rise(89)
    managerr = Manager("morning",9)
    print (managerr)
    
    
    print (emp1)
 
Share this answer
 
Comments
Richard MacCutchan 3-Mar-19 8:11am    
This makes no sense. You create the Manager class and define it as a subclass of Information, but you try to initialise the Information part without providing any parameters. You must provide the three required parameters (first, last and pay) in your call to Information.__init__(self).

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900