1

このプログラムでの私の目標は、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

クラスコードをインポートして実行するコードは次のとおりです。

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'

またよろしくお願いします!

4

3 に答える 3

7

変化する

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

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

また、アドバイス: getter と setter を書くことは、Python では一般的に嫌われています。メンバーを公開して、次のように取得/設定するだけです。

myEmployee.name = "David"
print myEmployee.name
于 2012-07-31T15:34:16.320 に答える
2

次の行を変更するだけです。

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

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

ただの誤字脱字かと思います..

于 2012-07-31T15:34:52.130 に答える
2

メインコードでと間違えEmployeeました。ProductionWorker

交換

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

myEmployee = employee.ProductionWorker(name, number,shift, payRate)
于 2012-07-31T15:35:02.323 に答える