1. 程式人生 > 其它 >Python基礎學習筆記——定義一個僱員類Employee(屬性、運算子過載、自定義id、判斷薪水)

Python基礎學習筆記——定義一個僱員類Employee(屬性、運算子過載、自定義id、判斷薪水)

技術標籤:pyhon基礎python

此問題來自高淇老師講義課後習題:

問題描述:

定義一個 Employee 僱員類,要求如下:
(1) 屬性有:id、name、salary
(2) 運算子過載+:實現兩個物件相加時,預設返回他們的薪水和
(3) 構造方法要求:輸入 name、salary,不輸入 id。id 採用自增的方式,從 1000 開
始自增,第一個新增物件是 1001,第二個新增物件是 1002。
(4) 根據 salary 屬性,使用@property 設定屬性的 get 和 set 方法。set 方法要求輸
入:1000-50000 範圍的數字。

程式碼:

class Employee:
    __init_flag =
True # 定義例項屬性 def __init__(self, ID, name, salary): self.id = ID self.name = name self.salary = salary def __add__(self, other): # 這裡過載了加號的功能__add__ if isinstance(other, Employee): return self.salary + other.salary else: return
"不是同類物件,不能相加" def input(self): # 定義自增方式 d = 1000 if self.id == ' ': # 當不輸入id時 if Employee.__init_flag: # 第一次給無id員工賦值id self.id = 1000 Employee.__init_flag = False return self.id else: # 第二次及以後給無id員工賦值
d = d + 1 self.id = d return self.id else: # 當輸入id時 return self.id def get_salary(self): return self.salary def set_salary(self): if 1000 < self.salary < 50000: pass else: print("錄入錯誤!薪水在1000-50000這個範圍") p1 = Employee(1000, "張三", 3000) p2 = Employee(1001, "李四", 3500) print(p1 + p2) # 兩個物件相加時,預設返回他們的薪水和 p3 = Employee(' ', "王五", 4000) p3.input() print(p3.id) # 驗證自增方式 p4 = Employee(' ', "趙六", 4500) p4.input() print(p4.id) # 驗證自增方式 p5 = Employee('1006', "趙六", -5000) p5.input() p5.set_salary() # 驗證薪水範圍是否正常

程式結果:

在這裡插入圖片描述

程式還有需要完善的地方,歡迎大家多多交流