2017-04-24 5 views
1
class Employee: 

    def __init__(self,Employee_Name,Hours_Worked,Hourly_Wage): 
     self.Employee_Name = Employee_Name 
     self.Hours_Worked = Hours_Worked 
     self.Hourly_Wage = Hourly_Wage 

    def displayName(self): 
     print ("Employee Name :", Employee_Name) 

    def displayHoursWorked(self): 
     print ("Hours Worked :", Hours_Worked) 

    def displayHourlyWage(self): 
     print ("Hourly Wage :", Hourly_Wage) 

    def Empname(self): 

    def Emppay(self): 
     if Hours_Worked <= 40: 
      print("Employee Pay :",Hours_Worked * Hourly_Wage) 
     if Hours_Worked > 40: 
      print ("Employee Pay :",((Hours_Worked - 40) * (Hourly_Wage * 1.5)) + (Hourly_Wage * 40)) 

Employee_Name = str(input("Employee Name :")) 
Hours_Worked = int(input("Hours Worked :")) 
Hourly_Wage = float(input("Hourly Wage :")) 
myEmployee = Employee(Employee_Name,Hours_Worked,Hourly_Wage) 
myEmployee.displayName() 
myEmployee.displayHoursWorked() 
myEmployee.displayHourlyWage() 
myEmployee.Emppay() 
myEmployee.Empname() 

Ich stecke auf einen Teil meiner Hausaufgabe.Wie verwendet man Methoden zum Abrufen und Setzen, um den Wert einer Eigenschaft in einer Klasse python zu setzen 3.6

Ich bin damit beauftragt, eine Klasse namens ‚Mitarbeiter‘ zu schaffen,

(1) der Konstruktor erstellt Attribute Mitarbeiternamen, Arbeitsstunden und Stundenlohn.

(2) Ich muss Methoden 'get' und 'set' verwenden, um den Wert einer Eigenschaft mit dem Namen 'Empname' festzulegen, die den Namen des Mitarbeiters widerspiegelt.

(3) Ich brauche eine Methode namens "Emppay", die das wöchentliche Gehalt des Mitarbeiters berechnet.

(4) Ich muss dann den Benutzer bitten, einen Namen, Arbeitsstunden und Stundenlohn anzugeben und 'myEmployee'-Objekt mit meiner Klasse' Employee 'zu erstellen. Verwenden Sie das Objekt "myEmployee", um den Namen, die geleisteten Stunden und den Stundenlohn auszudrucken. Mit dem Objekt 'myEmployee' rufen Sie die Methode 'Emppay' auf, um die wöchentliche Bezahlung zu berechnen.

(5) Bitten Sie den Benutzer, den Namen des Mitarbeiters zu ändern. Mit der Eigenschaft 'EmPname' ändern Sie den Namen in den neuen Namen und verwenden Sie die richtige, um den neuen Namen auszudrucken.

Teile 2 und 5, wo ich keine Ahnung, was ich tun müssen, und jede Hilfe sehr

Antwort

0

ich die Python3 class property, um Ihren Code würde geschätzt angepasst:

Haftungsausschluss: Dies ist wahrscheinlich nicht die " pythonische "Lösung, aber bis andere Benutzer eine Antwort anbieten, werde ich es hier für Ihre Überlegung lassen. Ich hoffe es hilft.

class Employee: 
    def __init__(self,Employee_Name,Hours_Worked,Hourly_Wage): 
     self.Employee_Name = Employee_Name 
     self.Hours_Worked = Hours_Worked 
     self.Hourly_Wage = Hourly_Wage 

    def displayName(self): 
     print ("Employee Name: ", self.Employee_Name) 

    def displayHoursWorked(self): 
     print ("Hours Worked: ", self.Hours_Worked) 

    def displayHourlyWage(self): 
     print ("Hourly Wage: ", self.Hourly_Wage) 

    @property 
    def Empname(self): 
     print("getter of Empname called") 
     return self.Employee_Name 

    @Empname.setter 
    def setEmpname(self, emp_name): 
     print("setter of Empname called") 
     self.Employee_Name = emp_name 

    def Emppay(self): 
     if self.Hours_Worked <= 40: 
      print("Employee Pay :", self.Hours_Worked * self.Hourly_Wage) 
     if self.Hours_Worked > 40: 
      print ("Employee Pay :",((self.Hours_Worked - 40) * (self.Hourly_Wage * 1.5)) + (self.Hourly_Wage * 40)) 

name_1 = input("Employee Name: ") 
hours_1 = int(input("Hours Worked: ")) 
hourly_wage_1 = float(input("Hourly Wage: ")) 
myEmployee = Employee(name_1,hours_1,hourly_wage_1) 
myEmployee.displayName() 
myEmployee.displayHoursWorked() 
myEmployee.displayHourlyWage() 
myEmployee.Emppay() 

emp_name_change = input("What Employee name do you want to change? ") 

if myEmployee.Employee_Name == emp_name_change: 
    new_emp_name = input("Change {old_emp_name} to what new name? ".format(old_emp_name=emp_name_change)) 
    myEmployee.Employee_Name = new_emp_name 
    print("{change_from}'s name changed to {change_to}".format(change_from=emp_name_change, change_to=new_emp_name)) 
else: 
    print("No employee with name {change_from} exists. No names changed".format(change_from=emp_name_change)) 

print(myEmployee.Employee_Name) 

Demos:

Employee Name: Jack 
Hours Worked: 15 
Hourly Wage: 10 
Employee Name: Jack 
Hours Worked: 15 
Hourly Wage: 10.0 
Employee Pay : 150.0 
What Employee name do you want to change? Steve 
No employee with name Steve exists. No names changed 
Jack 

Employee Name: Steve 
Hours Worked: 15 
Hourly Wage: 10 
Employee Name: Steve 
Hours Worked: 15 
Hourly Wage: 10.0 
Employee Pay : 150.0 
What Employee name do you want to change? Steve 
Change Steve to what new name? Jack 
Steve's name changed to Jack 
Jack 
Verwandte Themen