Моя цель с этой программой - записать 4 части информации (номер сотрудника, имя сотрудника, номер смены и тариф за час), а затем отобразить их. Мне нужно использовать классы в этой программе.Почему я получаю TypeError?
Вот код класса:
class Employee(object):
def __init__(self, name, number):
self.__name = name
self.__number - number
def set_name(self, name):
self.__name = name
def set_number(self, number):
self.__number = number
def get_name(self):
return self.__name
def get_number(self):
return self.__number
class ProductionWorker(Employee):
def __init__(self, name, number,
shift, payRate):
Employee.__init__(self, name, number)
self.__shift = shift
self.__payRate = payRate
def set_shift(self, shift):
self.__shift = shift
def set_payRate(self, payRate):
self.__payRate = payRate
def get_shift(self):
return self.__shift
def get_payRate(self):
return self.__payRate
Вот код, который импортирует код класса и выполняет его:
import employee
name = input('Name: ')
number = input('Employee Number: ')
shift = input('Shift number (Enter 1 for day and 2 for night): ')
payRate = input('Hourly Pay Rate: ')
myEmployee = employee.ProductionWorker(name, number,
shift, payRate)
print('--------------------')
print('Employee Information')
print('--------------------')
print('Name:', myEmployee.get_name())
print('Employee Number:', myEmployee.get_number())
print('Customer number:', myEmployee.get_Shift())
print('Hourly Pay Rate:', myEmployee.get_payRate())
Хорошо, фиксированный тип:
myEmployee = employee.Employee(name, number,
shift, payRate)
до:
myEmployee = employee.ProductionWorker(name, number,
shift, payRate)
, но теперь я получаю эту ошибку:
Traceback (most recent call last):
File "C:/Users/Alex/Desktop/Programming Concepts/Homework 2/Chapter 13/Employee and Production Worker Class.py", line 9, in <module>
shift, payRate)
File "C:/Users/Alex/Desktop/Programming Concepts/Homework 2/Chapter 13\employee.py", line 24, in __init__
Employee.__init__(self, name, number)
File "C:/Users/Alex/Desktop/Programming Concepts/Homework 2/Chapter 13\employee.py", line 5, in __init__
self.__number - number
AttributeError: 'ProductionWorker' object has no attribute '_Employee__number'
Еще раз спасибо за вашу помощь!
'myEmployee = employee.Employee (имя, номер, сдвиг, payRate)' .. Это вызывает класс сотрудника .. вы должны позвонить ProductionWorker .. Вам нужно пересмотреть, как работает наследование. –
Вы называете '__init__' для' Employee' похожим на 'ProductionWorker' –
Вы слышали о свойствах Python? Python - это не Java ... так что забудьте этот сеттер и код getter raw. –