#coding=utf-8
'''定义一个 Employee 雇员类,要求如下:
(1) 属性有:id、name、salary
(2) 运算符重载+:实现两个对象相加时,默认返回他们的薪水和
(3) 构造方法要求:输入 name、salary,不输入 id。id 采用自增的方式,从 1000 开始自增,第一个新增对象是 1001,第二个新增对象是 1002
(4) 根据 salary 属性,使用@property 设置属性的 get 和 set 方法。set 方法要求输入:'''
class Employee:
id = 1000
def __init__(self,id,name,salary):
self.name = name
self.__salary = salary # 私有变量
Employee.id += 1
self.id = Employee.id
@property
def salary(self):
return "ID是:{0},员工名字:{1},薪水:{2}".format(self.id,self.name,self.__salary)
@salary.setter
def salary(self,salary):
if 1000 < salary < 50000:
self.__salary =salary
else:
print("输入有误,salary是1000-50000范围的数")
def __add__(self, other):
if isinstance(other, Employee):
self.__salary += other.__salary
return '薪水和为:{0}'.format(self.__salary )
else:
return '不是同类对象,无法相加!'
emp1 = Employee(1,"高f",100)
emp2 = Employee(2,"高q",1000)
emp3 = Employee(3,"高p",10)
print(emp1.salary)
print(emp2.salary)
print(emp3.salary)
emp1.salary = 100
print(emp1+emp2)
C:\Users\Administrator\PycharmProjects\mypro_exception\venv\Scripts\python.exe C:/Users/Administrator/PycharmProjects/mypro_exception/test03.py
薪水和为:1100
id:1001,薪水为:500
id:1002,薪水为:600
薪水只能在1000-50000之间
Process finished with exit code 0
老师,为甚么在第一次赋值的时候没有报错呢?第二次赋值100元的时候却报错了