2017-03-16 5 views
0

これは、ユーザの情報をシステムに入力してレイズを得るかどうかを判断するコードです。理想的には、変数を使用して与えられた情報を検索しますが、私のクラスではclassのステートメントが必要です。与えられたユーザーのラストネームの金額を適用する方法は?

class User: 

    num_of_users=0 
    raise_amount = 1.04 

    def __init__(self, first, last, spend): 
     self.first=first 
     self.last=last 
     self.spend=spend 
     self.email=first + "." + last + "@company.com" 

     User.num_of_users += 1 

    def fullname(self): 
     return "{} {}".format(self.first, self.last) 

    def apply_raise(self): 
     self.spend= self.spend*self.raise_amount 

first=input("Enter in your first name:") 
last=input("Enter your last name:") 
spend=int(input("Enter in your availbe spend amount. This must be a positive number:")) 

# these are hypothetical users in my system 

user1=User(first,last,spend) 
user2=User("Ryan", "Weber", 1000) 
user3=User("Grant", "Freeland", 3000) 
user4=User("Vicki", "Lepper", 1000) 
user5=User("Haley", "Lepper", 500) 

if last=={"Lepper"}: 
    user1.apply_raise=1.2 

else: 
    user1.applyraise=1.04 

print(user1.applyraise) 
+3

あなたはメソッドとインスタンス変数を混​​乱させるようです。 'apply_raise'は、あなたのクラスのメソッドで、' user1.apply_raise(1.2) 'のような引数で呼び出されます。 – turbulencetoo

答えて

0

私はあなたが求めている正確にわからないんだけど、次のコードは、あなたが(PEP 8 - Style Guide for Python Codeに従うように変更)しているものに基づいています。

あなたがしたいことをしていますか? 同じ姓のユーザーごとににレイズを適用することがあるので、ファーストネームも確認してください。

class User: 
    num_of_users = 0 
    raise_amount = 1.04 

    def __init__(self, first, last, spend): 
     self.first = first 
     self.last = last 
     self.spend = spend 
     self.email = '{}.{}@company.com'.format(self.first, self.last) 
     User.num_of_users += 1 

    def fullname(self): 
     return '{} {}'.format(self.first, self.last) 

    def apply_raise(self, raise_amount=None): 
     if raise_amount is None: 
      raise_amount = User.raise_amount # use default 
     self.spend = self.spend * self.raise_amount 

# Hypothetical users in my system. 
users = [ 
    User('Ryan', 'Weber', 1000), 
    User('Grant', 'Freeland', 3000), 
    User('Vicki', 'Lepper', 1000), 
    User('Haley', 'Lepper', 500) 
] 

first = input('Enter in your first name:') 
last = input('Enter your last name:') 
spend = int(input('Enter in your available spend amount. This must be a positive number:')) 

for user in users: 
    if user.last == last: 
     user.apply_raise(1.2) 
     print(user.spend) 
関連する問題