Python应用“面向对象”人力系统
大家好!如果你刚开始学习 Python 面向对象编程,这个简易人力系统示例是一个很好的学习起点。通过这个示例,你将可以了解类的继承、方法重写等重要概念。
代码呈现:
#类继承练习:人力系统
#员工分为两类:全职员工 FullTimeEmployee、兼职员工 PartTimeEmployee。
#全职和兼职都有"姓名 name"、"工号" id属性,
#都具备"打印信息 print_info"(打印姓名、工号)方法。
#全职有"月薪 monthly_salary"属性,
#兼职有"日薪 daily_salary"属性,"每月工作天数 work_days"的属性。
#全职和兼职都有"计算月薪 calculate_monthly_pay"的方法,但具体计算过程不一样。class Employee:def __init__(self,name,id):self.name = nameself.id = iddef print_info(self):#info:信息print(f"员工名字:{self.name},工号:{self.id}")
class FullTimeEmployee(Employee):def __init__(self,name,id,monthly_salary):super().__init__(name,id)self.monthly_salary = monthly_salarydef calculate_monthly_pay(self):return self.monthly_salary class PartTimeEmployee(Employee):def __init__(self,name,id,daily_salary,work_days):super().__init__(name,id)self.daily_salary = daily_salaryself.work_days = work_daysdef calculate_monthly_pay(self):return self.daily_salary * self.work_daysZhangSan = FullTimeEmployee("张三","1001",6000)
LiSi = PartTimeEmployee("李四","1002",230,15)
ZhangSan.print_info()
LiSi.print_info()
print(ZhangSan.calculate_monthly_pay())
print(LiSi.calculate_monthly_pay())
代码介绍:
- 基类 Employee
我们首先定义了一个基础类 Employee ,它包含:
name :员工姓名
id :员工工号
print_info() :打印员工基本信息的方法这个类就像一个模板,所有类型的员工都具备这些基本属性和方法。
2. 继承
我们创建了两种员工类型:
FullTimeEmployee :全职员工,领取固定月薪 PartTimeEmployee :兼职员工,按日薪计算工资这两个类都继承自 Employee 类,这意味着它们自动获得了 Employee 的所有属性和方法。
3. 方法重写
尽管全职和兼职员工都属于员工类别,但他们的工资计算方式不同。因此我们在两个子类中分别实现了自己的calculate_monthly_pay 方法:
全职员工直接返回固定月薪
兼职员工将日薪乘以工作天数这种设计方式体现了面向对象编程的多态性。
当你运行这段代码时,会得到以下输出:
员工名字:张三, 工号:1001
员工名字:李四, 工号:1002
6000
3450
总结:
这个简易人力系统示例展示了 Python 面向对象编程的基本概念。通过继承和方法重写,我们能够以清晰简洁的方式表达不同类型的员工及其薪资计算方式。如果你刚开始学习 Python,这个示例是一个很好的起点。通过模仿和修改这段代码,你可以更深入地理解面向对象编程的核心思想。