need help in python
I am working on an assignment that I have rewritten four times and still cannot get it to work. I feel like I have it correct this time and yet i'm still not able to figure out why its not working. here are my pages. The first is my class module and the second my main program. I appreciate any suggestions I can get and thank you ahead of time.


SHIFT_2 = 1.05
SHIFT_3 = 1.10

class person:

    # The __init__ method accepts an argument for
    # names, Id numbers, and city of residence.
    
    def __init__(self, name, Id_number, city_of_residence):
        self.__name = name
        self.__Id_number = Id
        self.__city_of_residence = city
     

    #show_person method

    def show_person(self):
        print 'This is',self.__name
        print 'My ID number is',self.Id__number
        print 'My city of residence is',self.__city_of_residence

# The salary class is a subclass of the person class.
    
class salary(person):

    # The __init__ method accepts an argument for
    # names, Id numbers, city of residence, and annual_salary.

    def __init__(name, Id_numbers, city_of_residence,annual_salary):
        # call the superclass's __init__method
        person.__init__(name, Id_number, city_of_residence)

        #initialize the __annual_salary attribute
        self.__annual_salary = salary

    
    #show_pay method

    def show_pay(self):
        print 'Annual salary is', self.__annual_salary
        print 'Bi-weekly salary is', self.__annual_salary / 26

    
#The hourly class is a subclass of the person class

class hourly(person):

    def __init__(name, Id_numbers, city_of_residence,base_pay, shift):
        # call the superclass's __init__method
        person.__init__(name, Id_number, city_of_residence)

        #initiate the base_pay and shift attributes
        
        self.__base_pay = pay

        self.__shift = shift   

        

    
    #show_pay method

    def show_pay(self):
        print 'Base pay is',self.__base_pay
            if self.__shift = 1
            elif self.__shift = 2
            print 'Base pay is', self.__base_pay * SHIFT_2
                else self.__shift = 3
                print 'Base pay is', self.__base_pay * SHIFT_3

            
    

#volunteer is a subclass of the person class.

class volunteer
    def __init__(name, Id_numbers, city_of_residence,):
        # call the superclass's __init__method
        person.__init__(name, Id_number, city_of_residence)


    def show_pay(self):
        print 'This person is an unpaid volunteer.'



    

    -------------------------------------------------------------------------------------------


import person1

def main():

    #call the function to create a list
    staff = make_list()

    # display objects in the list
    print 'Employee information.'
    

    #call the function to display the objects in the list

    display_list(staff)

def make_list():

    #create empty list

    staff_list = []
    
    # enter salary objects
    print 'Enter data for Salary Employee.'
    #get the employee data data.
    name = raw_input('Enter name:')
    id_number=raw_input('Enter ID number:')
    city=raw_input('Enter city of residence:')
    annual_salary = raw_input('Enter annual salary')
    #create salary object
    salary = person1.salary(annual_salary)
    #add this object to the list
    staff_list.append(salary)

    #add three hourly objects
    print 'Enter data for three hourly employees'
    for count in range (1,4):
        print 'Hourly Employee ' + str(count) + ':'
        name = raw_input('Enter name:')
        id_number=raw_input('Enter ID number:')
        city=raw_input('Enter city of residence:')
        shift = raw_input ('Enter shift #')
        base_pay = raw_input ('enter base pay')
        #create hourly object
        hourly = person1.hourly(shift,base_pay)
        #add this object to the list
        staff_list.append(hourly)


    #add volunteer
    print 'Enter data for volunteer'
    name = raw_input('Enter name:')
    id_number=raw_input('Enter ID number:')
    city=raw_input('Enter city of residence:')

    #create volunteer object
    volunteer = person1.volunteer()

    #add this object to the list
    staff_list.append(volunteer)

    return staff_list


def display_list(worker_list):
        for worker in worker_list:
            if isinstance (worker, person1.person):
                print 'Staff'
                worker.show_person
                worker.show_pay
                print
            else:
                print ' This is not a valid person'

#call main function

main()

    
    
    
    
    
    
need help in python
===

I am working on an assignment that I have rewritten four times and still cannot get it to work. I feel like I have it correct this time and yet i'm still not able to figure out why its not working. here are my pages. The first is my class module and the second my main program. I appreciate any suggestions I can get and thank you ahead of time.


SHIFT_2 = 1.05
SHIFT_3 = 1.10

class person:

    # The __init__ method accepts an argument for
    # names, Id numbers, and city of residence.
    
    def __init__(self, name, Id_number, city_of_residence):
        self.__name = name
        self.__Id_number = Id
        self.__city_of_residence = city
     

    #show_person method

    def show_person(self):
        print 'This is',self.__name
        print 'My ID number is',self.Id__number
        print 'My city of residence is',self.__city_of_residence

# The salary class is a subclass of the person class.
    
class salary(person):

    # The __init__ method accepts an argument for
    # names, Id numbers, city of residence, and annual_salary.

    def __init__(name, Id_numbers, city_of_residence,annual_salary):
        # call the superclass's __init__method
        person.__init__(name, Id_number, city_of_residence)

        #initialize the __annual_salary attribute
        self.__annual_salary = salary

    
    #show_pay method

    def show_pay(self):
        print 'Annual salary is', self.__annual_salary
        print 'Bi-weekly salary is', self.__annual_salary / 26

    
#The hourly class is a subclass of the person class

class hourly(person):

    def __init__(name, Id_numbers, city_of_residence,base_pay, shift):
        # call the superclass's __init__method
        person.__init__(name, Id_number, city_of_residence)

        #initiate the base_pay and shift attributes
        
        self.__base_pay = pay

        self.__shift = shift   

        

    
    #show_pay method

    def show_pay(self):
        print 'Base pay is',self.__base_pay
            if self.__shift = 1
            elif self.__shift = 2
            print 'Base pay is', self.__base_pay * SHIFT_2
                else self.__shift = 3
                print 'Base pay is', self.__base_pay * SHIFT_3

            
    

#volunteer is a subclass of the person class.

class volunteer
    def __init__(name, Id_numbers, city_of_residence,):
        # call the superclass's __init__method
        person.__init__(name, Id_number, city_of_residence)


    def show_pay(self):
        print 'This person is an unpaid volunteer.'



    

    -------------------------------------------------------------------------------------------


import person1

def main():

    #call the function to create a list
    staff = make_list()

    # display objects in the list
    print 'Employee information.'
    

    #call the function to display the objects in the list

    display_list(staff)

def make_list():

    #create empty list

    staff_list = []
    
    # enter salary objects
    print 'Enter data for Salary Employee.'
    #get the employee data data.
    name = raw_input('Enter name:')
    id_number=raw_input('Enter ID number:')
    city=raw_input('Enter city of residence:')
    annual_salary = raw_input('Enter annual salary')
    #create salary object
    salary = person1.salary(annual_salary)
    #add this object to the list
    staff_list.append(salary)

    #add three hourly objects
    print 'Enter data for three hourly employees'
    for count in range (1,4):
        print 'Hourly Employee ' + str(count) + ':'
        name = raw_input('Enter name:')
        id_number=raw_input('Enter ID number:')
        city=raw_input('Enter city of residence:')
        shift = raw_input ('Enter shift #')
        base_pay = raw_input ('enter base pay')
        #create hourly object
        hourly = person1.hourly(shift,base_pay)
        #add this object to the list
        staff_list.append(hourly)


    #add volunteer
    print 'Enter data for volunteer'
    name = raw_input('Enter name:')
    id_number=raw_input('Enter ID number:')
    city=raw_input('Enter city of residence:')

    #create volunteer object
    volunteer = person1.volunteer()

    #add this object to the list
    staff_list.append(volunteer)

    return staff_list


def display_list(worker_list):
        for worker in worker_list:
            if isinstance (worker, person1.person):
                print 'Staff'
                worker.show_person
                worker.show_pay
                print
            else:
                print ' This is not a valid person'

#call main function

main()

    
    
    
    
    
    