当前位置: 首页 > news >正文

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())

       代码介绍:

  1.    基类  Employee ​

      我们首先定义了一个基础类  Employee ,它包含:

​ name :员工姓名

 id :员工工号

​ print_info() :打印员工基本信息的方法​这个类就像一个模板,所有类型的员工都具备这些基本属性和方法。

       ​2. 继承​

       我们创建了两种员工类型:​

FullTimeEmployee :全职员工,领取固定月薪​ PartTimeEmployee :兼职员工,按日薪计算工资​这两个类都继承自 Employee  类,这意味着它们自动获得了  Employee  的所有属性和方法。​

        3. 方法重写​

        尽管全职和兼职员工都属于员工类别,但他们的工资计算方式不同。因此我们在两个子类中分别实现了自己的calculate_monthly_pay  方法:

​全职员工直接返回固定月薪​

兼职员工将日薪乘以工作天数​这种设计方式体现了面向对象编程的多态性。​

当你运行这段代码时,会得到以下输出:​

员工名字:张三, 工号:1001
员工名字:李四, 工号:1002
6000
3450

       总结:

        这个简易人力系统示例展示了 Python 面向对象编程的基本概念。通过继承和方法重写,我们能够以清晰简洁的方式表达不同类型的员工及其薪资计算方式。​如果你刚开始学习 Python,这个示例是一个很好的起点。通过模仿和修改这段代码,你可以更深入地理解面向对象编程的核心思想。​

相关文章:

  • NtfsLookupAttributeByName函数分析之和Scb->AttributeName的关系
  • 【萤火工场GD32VW553-IOT开发板】流水灯
  • 【数据架构06】可信数据空间架构篇
  • SpringBoot3+Vue3开发宾馆住房管理系统
  • YOLO-SLD:基于注意力机制改进的YOLO车牌检测算法
  • QML与C++联合编程
  • 手游DDoS攻击防御与应对策略
  • 根据参数量,如何推断需要多少数据才能够使模型得到充分训练?
  • Python asyncio库:基本概念与使用方法
  • 佰力博与您探讨PVDF薄膜极化特性及其影响因素
  • GMP模型入门
  • Rules and Monetization
  • 【JavaScript-Day 20】揭秘函数的“记忆”:深入浅出理解闭包(Closure)
  • 【MySQL】实战时遇到的几个 tips
  • ​宠智灵AI诊疗助手:打造宠物医疗的“第二医生”与智能化引擎
  • MySQL--day6--单行函数
  • 机器人强化学习入门学习笔记(四)
  • React从基础入门到高级实战:React 基础入门 - 状态与事件处理
  • 聚焦 Microsoft Fabric,释放数据潜力
  • CAS详解
  • 奢侈品网站建设方案/关键词林俊杰歌词
  • 复制别人网站的源码做网站模板/外链推广网站
  • wordpress自定义分类调用/怎么优化关键词
  • 如何利用js来做网站表单/seo推广培训费用
  • 全球十大室内设计公司排名榜/seo数据优化
  • 做直播网站开发教程/seo网站查询