2017-04-08 6 views
0

私はPythonとラーニングクラスの初心者です。私は以下のクラスで方法chargeを返すことに困難を抱えてきました。私は.feechargeを使ってみました。クラスから返すメソッド

class Job: 

rate = 1.04 


def __init__(self, location, salary, description, fee) : 
    self.location = location 
    self.salary = salary 
    self.description = description 
    self.fee = fee 



def Charge(self): 
    self.fee = int(self.fee + Job.rate) 


job1=Job("london",23000,"Accounts Assistant",1200) 
job2=Job("london",25000,"Accounts Assistant",500) 

job1.rate = 1.05 

job1.charge() 
print(job1.fee) 
+2

方法でJob.rateself.rateの違いを示すために、Charge2を作成しましたか?エラーメッセージが表示されますか(ここに貼り付けてください)、または期待していなかった結果が表示されます(誤った出力と期待した結果を与えてください)。コードのインデントが間違っています。クラスの一部であるものは全てインデントされるべきです。正しくインデントされていても、タイプミスのためにエラーが発生します( 'Charge'と' charge' ...)。これを最初に修正してください! –

+0

タイプミスがあると思います。充電方法はCaps 'C'で始まります。 –

答えて

0

多少の書式設定やコメントが参考になるかもしれません。 chargeのケースをChargeメソッド名に正しく設定しました。私はあなたの問題は何

class Job: 

    rate = 1.04 

    def __init__(self, location, salary, description, fee) : 
     self.location = location 
     self.salary = salary 
     self.description = description 
     self.fee = fee 

    def Charge(self): 
     self.fee = int(self.fee + Job.rate) # use class amount 1.04 
    def Charge2(self): 
     self.fee = int(self.fee + self.rate) # use instance (11.05 set below) 

job1 = Job("london",23000,"Accounts Assistant",1200) # create instance 
job2 = Job("london",25000,"Accounts Assistant",500) # create instance 

job1.rate = 11.05 

job1.Charge() # execute, adds 1.04 to 1200, then make int of that 
print(job1.fee) # outputs 1201 
job1.Charge2() # execute, adds 11.05 to 1201, then make int of that 
print(job1.fee) # outputs 1212 
print(job2.fee) # outputs 500 
job1.Charge2() # execute, adds 11.05 to 1212, then make int of that 
print(job1.fee) # outputs 1223 
job1.Charge() # execute, adds 1.04 to 1223, then make int of that 
print(job1.fee) # outputs 1224 
+0

ありがとうございました。できるだけ早く学びたいと思っており、インデントを見落としてしまいました。私は、クラス変数を特定のインスタンスに対してどのように変更でき、使用していると出力がどのように異なるかを確認できますクラスまたはインスタンスのいずれか。 –

+0

これはあなたの質問をカバーしていない場合は、それがどのようにしないか、またはどの情報が不足しているか教えてください。必要に応じて、このコードをhttp://pythonfiddle.com/に貼り付け、テストとして実行することができます。 –

関連する問題