为什么我打字出错?

2024-06-23 18:45:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我用这个程序的目标是记录4条信息(员工编号、员工姓名、班次号和小时工资率),然后显示它们。我需要在这个程序中使用类。在

这是班级代码:

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

以下是导入类代码并执行它的代码:

^{pr2}$

好吧,固定类型:

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'

再次感谢您的帮助!在


Tags: 代码nameselfnumbergetreturnshiftinit
3条回答

您将主代码中的Employee与{}错误地结合在一起。在

更换

myEmployee = employee.Employee(name, number,shift, payRate)

通过

^{pr2}$

改变

myEmployee = employee.Employee(name, number,
                       shift, payRate)

^{pr2}$

另外,还有一条建议:编写getter和setter通常是frowned upon in Python。只需将成员公开并获得/设置为:

myEmployee.name = "David"
print myEmployee.name

只需更改以下行:

myEmployee = employee.Employee(name, number,
                       shift, payRate)

^{pr2}$

我想那可能是个打字错误。。在

相关问题 更多 >

    热门问题