# 有2个类:
# a. 员工类:属性:名字、工号、部门、工资方法:涨工资
# b. 经理类继承自员工类 并多了一个属性:奖金
# c. 问题:
# i. 1).某公司有员工3人 经理2名 请用一个列表来管理他们 请自行产生这些对象
# ii. 2.请输出所有员工的信息 格式:工号 部门 名字 工资
# iii. 3.请统一的为所有员工涨一次工资 员工涨10% 经理比员工多涨10%
# iv. 4.请输出所有员工涨工资后的信息 格式:工号 部门 名字 工资
解决方案如下:
class Staff: # 员工
__name = ''
__job = 1243
__department = '技术部'
__wages = 1000
def __init__(self, name1, job1, dep, wages1):
self.__name = name1
self.__job = job1
self.__department = dep
self.__wages = wages1
def raise1(self, n): # 涨工资
self.__wages = self.__wages + (self.__wages * n)
def __str__(self):
return '姓名:{},工号:{},部门:{},工资{}'.format(self.__name, self.__job, self.__department, self.__wages)
class Executive(Staff):
bonus =1
staff=Staff(1,2,3,4)
list_a=[]
# class Executive(Employee):
for i in range(5):
if i>2:
print('请输入Executive()类的值')
ex=Executive()
ex.name=input('请输入Executive名称')
ex.age=int(input('请输入Executive年纪'))
ex.gender=input('请输入Executive性别')
ex.number=int(input('请输入Executive电话'))
ex.raise1(0.2)#经理涨双倍
list_a.append(ex.__str__())
else:
print('请输入Staff()类的值')
em = Staff(1,2,3,4)
em.name = input('请输入Staff()名称')
em.age = int(input('请输入Staff()年纪'))
em.gender = input('请输入Staff()性别')
em.number = int(input('请输入Staff()电话'))
em.raise1(0.1)#员工涨10%
list_a.append(em.__str__())
print(list_a)
这道题会有一点复杂,但是说白了也就是在外面用了个判断,多试试就明白其中的含义了。