Я пишу программу, в инструкциях которой указано: «Метод str не должен содержать никаких операторов печати и должен возвращать строку». Итак, я определил функцию (в классе Employee) следующим образом:
def __str__(self):
return "\nThe employee's name is " + self.__employeeName + \
"\nTotal regular hours worked: " + str(format(self.__regHours)) + \
"\nTotal overtime hours worked: " + str(format(self.__otHours)) + \
"\nTotal hours worked: " + str(format(self.__regHours + self.__otHours)) + \
"\nEmployee's pay rate: $" + str(format(self.__hourlyPayRate, ".2f")) + \
"\nMonthly regular pay: $" + str(format(self.getMonthlyRegPay(), ".2f")) + \
"\nMonthly overtime pay: $" + str(format(self.getMonthlyOtPay(), ".2f")) + \
"\nMonthly gross pay: $" + str(format(self.getGrossPay(), ".2f")) + \
"\nMonthly taxes: $" + str(format(self.getTaxes(), ".2f")) + \
"\nMonthly net pay: $" + str(format(self.getNetPay() - self.getTaxes(), ".2f"))
И я создал этот экземпляр класса Employee в отдельном файле:
employee = EmployeeClass_New.Employee()
employee.setEmployeeName()
employee.setHourlyPayRate()
employee.setHoursWorked()
employeeName = employee.getEmployeeName()
hourlyPayRate = employee.getHourlyPayRate()
regHours = employee.getRegHours()
otHours = employee.getOtHours()
regPay = employee.getMonthlyRegPay()
otPay = employee.getMonthlyOtPay()
grossPay = employee.getGrossPay()
taxes = employee.getTaxes()
netPay = employee.getNetPay()
**print(f"{str(employee)}")**
repeat = input("Type 'yes' to input another employee or 'no' to quit: ")
Мой вопрос относится к выделенной жирным шрифтом части, так как я могу вывести его только распечатав. Я пробовал называть это так:
employee.__str__()
, но это ничего не дало ... мой вопрос: нарушаю ли я инструкции профессора, но делаю это? Есть ли способ вызвать str , чтобы он производил вывод? Все статьи, которые я читаю, рассчитаны на то, чтобы напечатать этот метод, но я хочу быть очень уверенным, поскольку мой профессор даст мне 0 за это задание, если я нарушу это правило.
Большое спасибо!