Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Class Information Help
#1
# Main worker class
class worker():

    def __init__(self, name, salary, department):
        print("__init__ function of worker class.")
        self.name = name
        self.salary = salary
        self.department = department

    def show_info_worker(self):
        print("show_info function of worker class")
        print("""Name: {}\nSalary: {}\nDepartment: {}""".format(self.name, self.salary, self.department))

    def change_depart(self, new_depart):
        print("change_depart function of worker class")
        self.department = new_depart


# Main manager class
class manager(worker):

    def __init__(self, name, salary, department, responsibilty):
        # super() function takes input from worker class
        super().__init__(name, salary, department)
        print("__init function of manager class")
        self.responsibilty = responsibilty

    def show_info_manager(self):
        print("show_info function of manager class")
        return """Name: {}\nSalary: {}\nDepartment: {}\nResponsibility: {}""".format(self.name, self.salary,
                                                                                    self.department,
                                                                                    self.responsibilty)

    def raise_salary(self, increase_salary):
        print("raise_salary function of manager class")
        self.salary += increase_salary


employee_name = input("Please Enter Employee Name: ")
employee_salary = input("Please Enter Employee Salary: ")
employee_department = input("Please Enter Employee Department: ")
while True:
    check_manager = int(input("""Please Select the Position of Employee\n1. Worker\n2. Manager"""))
    if check_manager == 1:
        worker1 = worker(employee_name, employee_salary, employee_department)
        worker1.show_info_worker()
        break
    elif check_manager == 2:
        manager_responsibility = input("Please Enter Manager Responsibility: ")
        manager1 = manager(employee_name, employee_salary, employee_department, manager_responsibility)
        manager1 = manager.show_info_manager() # ERROR!!!
        break
    else:
        print("Please Enter a Proper Value...")
I get an error in line 51

Error:
Traceback (most recent call last): __init__ function of worker class. __init function of manager class File "C:/Users/Gökberk/Desktop/Python/Intermediate Exercise/Class Second Example.py", line 51, in <module> manager1 = manager.show_info_manager() TypeError: show_info_manager() missing 1 required positional argument: 'self'
I don't know how to fix that error.
the situation is that I want to print manager class information after all input done.
Thank you for all of you for help
Reply
#2
You need to use the variable name instead of the class name. It looks like a typo.

manager1 = manager1.show_info_manager()
Reply
#3
the first argument of method show_info_manager must be 'self'
Reply


Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020