今天我们来练习加强一下Python面向对象中继承的用法技巧,我们今天用一个涨工资的程序来练习一下,来加强我们队继承的理解!好了老规矩上代码!!!
class Employees: #定义一个员工类
name = '' #定义姓名属性
work_number = '' #定义员工工号属性
department = '' #定义员工部门属性
money = 0 #定义基本工资属性
def __init__(self, name, work_number, departmnet, money): #魔法函数自动初始化属性
self.name = name
self.work_number = work_number
self.department = departmnet
self.money = money
def information(self): #定义一个函数展示员工的初始信息
return '工号为{}{}的{}工资是{:.1f}'.format(self.work_number, self.department, self.name, self.money)
def wage(self, data): #定义一个涨工资的函数返回涨工资后的钱数
self.money = self.money * data
return self.money
class Manager(Employees): #定义一个经理部门类并继承基础员工类
bonus = 2000 #经理的奖金为2000
def wage1(self, data): #定义一个函数计算经理的工资
return Employees.wage(self, data) + self.bonus
list1 = []
p1 = Employees('唐三', '001', '生产部', 4500)#实例化四个员工加入列表
p2 = Employees('小舞', '002', '生产部', 4000)
p3 = Employees('奥斯卡', '003', '技术部', 6000)
p4 = Manager('唐昊', '004', '经理部', 8000)
p5 = Manager('比比东', '005', '经理部', 9000)
list1.append(p1)
list1.append(p2)
list1.append(p3)
list1.append(p4)
list1.append(p5)
for i in list1: #遍历列表打印出涨工资前的员工信息
print(i.information())
for i in list1[:3]: #用遍历切片计算除经理外的员工涨工资后的工资
i.wage(1.1)
for i in list1[3:]: #用遍历切片计算除经理涨工资后的工资
i.wage1(1.2)
print('************涨工资后************')
for i in list1:
print(i.information()) #把涨工资后的员工信息打印出来
运行结果为:
工号为001生产部的唐三工资是4500.0
工号为002生产部的小舞工资是4000.0
工号为003技术部的奥斯卡工资是6000.0
工号为004经理部的唐昊工资是8000.0
工号为005经理部的比比东工资是9000.0
************涨工资后************
工号为001生产部的唐三工资是4950.0
工号为002生产部的小舞工资是4400.0
工号为003技术部的奥斯卡工资是6600.0
工号为004经理部的唐昊工资是9600.0
工号为005经理部的比比东工资是10800.0
通读代码对初学Python的同学可能会受益良多,刚开始学编程难免会有一些问题把自己的思想给束缚住,只要思想不滑坡,方法总比困难多哈哈!我相信只有不断的练习练习再练习,每一遍都有每一遍的收获,俗话说书读百变其义自见,编程也是如此,只有敢于尝试,敢于试错,经验往往都是在经历过错误总结而来的!大家加油!还有正值奥运期间,希望我们的奥运健儿都能在奥运会上大放光彩,为国争光!加油中国队!!!