使用(和究竟什麼好處?)你的榜樣
class Salary:
def __init__(self,pay):
self.pay=pay
def get_total(self):
return (self.pay*12)
def increase(self):
self.pay *= 1.1
class Employee:
def __init__(self,pay,bonus):
self.pay=pay
self.bonus=bonus
self.obj_salary=Salary(self.pay)
def annual_salary(self):
return "Total: " + str(self.obj_salary.get_total()+self.bonus)
obj_emp=Employee(100,10)
print (obj_emp.annual_salary())
調用employee.salary.increase的擴展版本使得比更有意義employee.increase
另外如果你需要多個對象呢?你會繼承其中的一個還是所有這些都會導致名稱衝突?
class Game:
def __init__(self):
self.screens = [LoadingScreen, MapScreen]
self.player = Player()
self.display = Display()
self.stats = Stats(self.display)
self.screenIndex = self.player.getScreen()
self.currentScreen = self.screens[self.screenIndex]()
self.run()
*編輯*看着這個
but on looking it up again i find that increase could be renamed to increaseSalary so employee.increaseSalary() would make sense right?
後 你可以簡單地移動增加僱員類,但如果你有一個Manager類,或者您需要一個老大級是什麼重複相同的碼用於每個類別
class Employee:
def __init__(self,pay,bonus):
self.pay=pay
self.bonus=bonus
def annual_salary(self):
return "Total: " + str(self.obj_salary.get_total()+self.bonus)
def increase_salary(self):
self.pay *= 1.1
class Manager:
def __init__(self,pay,bonus):
self.pay=pay
self.bonus=bonus
def annual_salary(self):
return "Total: " + str(self.obj_salary.get_total()+self.bonus)
def increase_salary(self):
self.pay *= 1.1
class Boss:
def __init__(self,pay,bonus):
self.pay=pay
self.bonus=bonus
def annual_salary(self):
return "Total: " + str(self.obj_salary.get_total()+self.bonus)
def increase_salary(self):
self.pay *= 1.1
OR只有一次
class Salary:
def __init__(self,pay):
self.pay=pay
def get_total(self):
return (self.pay*12)
def increase(self, addition):
self.pay *= addition
你也可以使用一個類的方法來找到平均值,最大值,最小值等方便很多
'薪水'可以分類 - *工資*,* tredicesima *等。而一個'員工'類型可能*組成*任何子類。 –
@MosesKoledoye不能直接使用'pay'作爲'Employee'類的'object屬性'嗎? – anekix
這將您限制爲數字值。通過「薪資」類別,您可以跟蹤與員工薪酬相關的其他相關屬性。 –