0

I am trying to write a program that gets the employee's name, idNumber, shift Number and Pay rate. I have written the program to the T, but now when i call the get__ method it does not populate it just shows the "get_employeeNumber and get__employeeName" methods and not my "get__ShiftNumber and get__payRate".

Can someone help me?

class Employee:

    def __init__(self,employeeName, employeeNumber):
        self.__employeeName = employeeName
        self.__employeeNumber = employeeNumber



    def set_employeeName(self, employeeName):
        self.__employeeName = employeeName



    def set_employeeNumber(self,employeeNumber):
        self.employeeNumber = employeeNumber



    def get_employeeName(self):
        return self.__employeeName



    def get_employeeNumber(self):
        return self.__employeeNumber



class ProductionWorker(Employee):
    def __init__ (self,employeeName, employeeNumber, shiftNumber, payRate):
        Employee. __init__ (self,employeeName,employeeNumber)
        #intialize the shift number
        self.__shiftNumber = shiftNumber

        #intialize the pay rate
        self.__payRate = payRate


        def set_shiftNumber(self,shiftNumber):
            self.__shiftNumber = shiftNumber


        def set_payRate(self,payRate):
            self.__payRate = payRate


        def get_shiftNumber(self):
            return self.__shiftNumber

        def get_payRate(self):
            return self.__payRate

my main Function:

import ce_classEmployee11_1

def main():

        print('                  ', 'Production Worker Information')
        print('--------------------------------------------------------------------------------')
        print('Name','          ', 'ID Number','       ', 'Shift Number', '     ', 'Worker Pay')
        print('--------------------------------------------------------------------------------')

        workName = input('Enter the worker name:')

        idNumber = int(input("Enter {}".format(workName) + 'ID number'))

        shiftValue = int(input("Enter {}". format(workName) + 'shift number'))

        hourRate = int(input('Enter {}'. format(workName) + 'hourly rate:'))


        myEmployee = ce_classEmployee11_1.ProductionWorker(workName,idNumber,shiftValue,hourRate)


        print(myEmployee.get_employeeName(), '           ', myEmployee.get_employeeNumber())

        print(myEmployee.get_shiftValue())
Aran-Fey
  • 39,665
  • 11
  • 104
  • 149
  • 1
    This really isn't how you write Python. If you're learning this from a tutorial, stop immediately and find one that is written by someone who actually knows the language. [Here](https://sopython.com/wiki/What_tutorial_should_I_read%3F) are a few suggestions. – Daniel Roseman Apr 22 '18 at 17:52
  • Possible duplicate of [OOP: getter/setter methods](https://stackoverflow.com/questions/8297723/oop-getter-setter-methods) – Joshua Apr 22 '18 at 17:59
  • multiple typos in the code, so no wonder things aren't working. – Daniel Apr 22 '18 at 18:16
  • Python has the `@property` decorator, nor is it clear *why* you'd need getters and setters here... – Jared Smith Apr 22 '18 at 18:24
  • i found out my problem in my CLASS program i have my set's and get's as local.. all i had to do was backspace the def_set and def_get methods... thanks all. – Corbin Apr 24 '18 at 23:39

0 Answers0