一个类是销售部门Sales,该类具有每个员工属性昵称(nickname).性别(sex),工资( salary )对Sales继承得到一个Goodteam类,该类存放每个员工近三年工资,并求出平均工资,打印出来,并对比今年工资和过去三年,是否涨工资了对象是张三,今年工资是3000,过去三年工资分别是1000.2000.3000 用装饰器property方法,写一遍
时间: 2024-03-11 13:48:53 浏览: 41
好的,以下是使用装饰器property方法的代码实现:
```python
class Sales:
def __init__(self, nickname, sex, salary):
self.nickname = nickname
self.sex = sex
self.salary = salary
class Goodteam(Sales):
def __init__(self, nickname, sex, salary, salary_history):
super().__init__(nickname, sex, salary)
self.salary_history = salary_history
@property
def avg_salary(self):
return sum(self.salary_history) / len(self.salary_history)
def compare_salary(self):
if self.salary > self.salary_history[-1]:
print("今年涨工资了!")
else:
print("今年没有涨工资。")
# 创建张三对象
zhangsan = Goodteam("张三", "男", 3000, [1000, 2000, 3000])
# 打印平均工资
print("员工平均工资为:", zhangsan.avg_salary)
# 对比今年工资和过去三年
zhangsan.compare_salary()
```
输出结果为:
```
员工平均工资为: 2000.0
今年没有涨工资。
```
以上代码实现了对Sales类的继承,并使用了装饰器@property来实现了一个avg_salary方法,可以直接通过对象访问该方法获取员工的平均工资。同时,我们还实现了一个compare_salary方法,用于对比今年工资和过去三年的工资情况,判断是否涨工资了。
阅读全文