2017-10-13 19 views
1

私は、キャッシャーと呼ばれる基底クラスと、トレーニーと呼ばれる継承クラスを持っています。私は、訓練生クラスでserviceTimeという変数をオーバーライドしようとしています。私は次のことを考え出した。私はこれを実行したときしかし、私が取得:継承されたクラスのベース変数をオーバーライドします

TypeError: __init__() takes exactly 2 arguments (1 given)

私は、基本クラスでobjectを使用していていても。誰かが何が起こっているか私に説明することはできますか?

class Cashier(object): 
    def __init__(self, cashierNumber): 
     self.cashierNumber = cashierNumber 
     self.serviceTime = 1 

class Trainee(Cashier): 
    def __init__(self, cashierNumber): 
     super(Trainee, self).__init__() 
     self.serviceTime = 2 

答えて

4

あなたは、親クラスのコンストラクタにパラメータを渡す必要があります。

class Trainee(Cashier): 
    def __init__(self, cashierNumber): 
     super(Trainee, self).__init__(cashierNumber) 
     self.serviceTime = 2 
関連する問題