一个公司有四类人员:经理、技术人员、推销人员、销售经理以及推销人员。员工的共有属性有:姓名、级别、职工工号,月薪总额,新增的职工工号,由公司现有的员工工号最大值加1得到,方法有promote(),功能是改变员工的级别
时间: 2023-07-10 18:06:56 浏览: 110
好的,那我们可以定义一个Employee类来表示这些员工,代码如下:
```python
class Employee:
def __init__(self, name, level, id, salary):
self.name = name
self.level = level
self.id = id
self.salary = salary
def promote(self, new_level):
self.level = new_level
def __str__(self):
return f"Name:{self.name}, Level:{self.level}, ID:{self.id}, Salary:{self.salary}"
```
在这个类中,我们定义了一个构造函数来初始化员工的基本信息,包括姓名、级别、职工工号和月薪总额。还定义了一个promote()方法,用来改变员工的级别。最后我们还定义了一个__str__()方法,方便打印输出员工的信息。
接下来,我们可以定义各种不同类型的员工,比如经理、技术人员、推销人员和销售经理。这些员工的属性和方法都可以继承自Employee类,再根据不同的需求进行扩展和修改。例如:
```python
class Manager(Employee):
def __init__(self, name, level, id, salary, department):
super().__init__(name, level, id, salary)
self.department = department
def __str__(self):
return f"{super().__str__()}, Department:{self.department}"
class Technician(Employee):
def __init__(self, name, level, id, salary, skill):
super().__init__(name, level, id, salary)
self.skill = skill
def __str__(self):
return f"{super().__str__()}, Skill:{self.skill}"
class Salesman(Employee):
def __init__(self, name, level, id, salary, region):
super().__init__(name, level, id, salary)
self.region = region
def __str__(self):
return f"{super().__str__()}, Region:{self.region}"
class SalesManager(Salesman):
def __init__(self, name, level, id, salary, region, department):
super().__init__(name, level, id, salary, region)
self.department = department
def __str__(self):
return f"{super().__str__()}, Department:{self.department}"
```
在这些子类中,我们对父类的__init__()方法进行了重写,以便添加新的属性。同时,我们也重写了__str__()方法,方便打印输出员工的信息。例如,Manager类新增了一个department属性,表示所属部门;Technician类新增了一个skill属性,表示技能;Salesman类新增了一个region属性,表示销售区域;SalesManager继承自Salesman并新增了一个department属性,表示所属部门。
现在我们就可以创建各种不同类型的员工,并对他们进行操作,例如:
```python
# 创建一个经理
manager = Manager("Tom", 3, 1001, 10000, "Sales")
# 输出经理的信息
print(manager)
# 将经理的级别提升为4
manager.promote(4)
# 再次输出经理的信息
print(manager)
```
输出结果为:
```
Name:Tom, Level:3, ID:1001, Salary:10000, Department:Sales
Name:Tom, Level:4, ID:1001, Salary:10000, Department:Sales
```
这个例子展示了如何创建一个经理,并对其进行级别调整。其他类型的员工也可以类似地创建和操作。
阅读全文