1
1
0:
继承、组合、覆盖
1:
灵活,不用再重新编辑方法
2:
可以
3:
是不是鸭子不重要,只要它能游泳,能表现出和鸭子相似的行为
4:
增强了内聚
5:
不是
01
poi
0.同一个符号、函数或对象在不同的场景下具有不同的作用效果
1.一是增加程序的灵活性,二是增加程序的可扩展性
2.可以
3.When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck.
4.低耦合
5.不是
0
1
0
1
111
答案
no
0.重写
1.
2.可以
3.
wew
11
问答题:
0. 通过在类外定义使用类方法的函数。
1. 相同的函数,但可以面向不同的对象输出不同的结果。
2. 可以
3.
4. 降低耦合
5. 不属于
1
0,同一个函数在面对不同类型的对象能体现出相似但不同的功能
1,我认为主要是提高代码的简洁性,降低学习的难度
2.可以
3.
4.我认为是增强了内聚
5.不是,他只不过是利用了函数的基本特性
0.就这样吧
class PubInfoMixin:# 公共信息库
uid = 10000
pi_dict = {}
class Employee(PubInfoMixin):# 普通员工类
iic = 0#类的实例化次数
def __init__(self, name, job, grade, year, uid):
self.name = name
self.job = job
self.grade = grade
self.year = year
self.uid = uid
Employee.iic += 1
def __del__(self):
Employee.iic -= 1
def get_uid(self):
return self.uid
def get_name(self):
return self.name
def get_job(self):
return self.job
def get_grade(self):
return self.grade
def get_year(self):
return self.year
def salary(self):
return 3000 + 500*self.grade +50*self.year
class Teamleader(PubInfoMixin):
iic = 0
def __init__(self, name, job, grade, year, uid):
self.name = name
self.job = job
self.grade = grade
self.year = year
self.uid = uid
Teamleader.iic += 1
def __del__(self):
Teamleader.iic -= 1
def get_uid(self):
return self.uid
def get_name(self):
return self.name
def get_job(self):
return self.job
def get_grade(self):
return self.grade
def get_year(self):
return self.year
def salary(self):
return 4000 + 800*self.grade + 100*self.year
class Manager(PubInfoMixin):
iic = 0
def __init__(self, name, job, grade, year, uid):
self.name = name
self.job = job
self.grade = grade
self.year = year
self.uid = uid
Manager.iic += 1
def __del__(self):
Manager.iic -= 1
def get_uid(self):
return self.uid
def get_name(self):
return self.name
def get_job(self):
return self.job
def get_grade(self):
return self.grade
def get_year(self):
return self.year
def salary(self):
return 5000 + 1000*(self.grade + self.year)
def luru():
name = input("姓名")
job = input("职位(E.普通职员;T.组长;M.经理):")
year = int(input("工龄"))
grade = int(input("级别"))
while job :
if job == 'E':
PubInfoMixin.pi_dict = Employee(name, job, grade, year, PubInfoMixin.uid)
PubInfoMixin.uid += 1
break
elif job == 'T':
PubInfoMixin.pi_dict = Teamleader(name, job, grade, year, PubInfoMixin.uid)
PubInfoMixin.uid += 1
break
elif job == 'M':
PubInfoMixin.pi_dict = Manager(name, job, grade, year, PubInfoMixin.uid)
PubInfoMixin.uid += 1
break
else:
job = input("指令错误,请重新输入\n职位(E.普通职员;T.组长;M.经理):")
def chaxun():
ins = input("1.员工查询;2.职位查询")
ifins == '1':
uid = int(input("请输入工号:"))
ygdx = PubInfoMixin.pi_dict.get(uid)
if ygdx:
print("姓名:",ygdx.name)
print("职位:",ygdx.job)
print("级别:",ygdx.grade)
print("工龄:",ygdx.year)
print("薪资:",ygdx.salary())
else:
print("该工号不存在!")
elif ins == '2':
job_ = input("职位(E.普通职员;T.组长;M.经理):")
if job_ == 'E':
print('目前普通职员共有',Employee.iic,'人', sep='')
elif job_ == 'T':
print('目前组长共有',Teamleader.iic,'人', sep='')
elif job_ == 'M':
print('目前经理共有',Manager.iic,'人', sep='')
else:
print("指令错误,请重新输入指令")
else:
print("指令错误,请重新输入指令")
def shengji():
_id = int(input("请输入工号"))
dx = PubInfoMixin.pi_dict.get(_id)
if dx:
xz_1 = dx.salary()
print(dx.name, "工号:", dx.uid, "当前职位:", dx.job, dx.grade, "当前薪资", xz_1, sep='')
_ = int(input("请输入要增加的级数:"))
dx.grade += _
print("升级成功!")
print(dx.name, "工号:", dx.uid, "升级后职位:", dx.job, dx.grade, "升级后薪资", dx.salary(), '(',dx.salary()-xz_1 , ')', sep='')
else:
print("无此工号!")
def jiangji():
_id = int(input("请输入工号"))
dx = PubInfoMixin.pi_dict.get(_id)
if dx:
xz_1 = dx.salary()
print(dx.name, "工号:", dx.uid, "当前职位:", dx.job, dx.grade, "当前薪资", xz_1, sep='')
_ = int(input("请输入要减少的级数:"))
dx.grade += _
print("降级成功!")
print(dx.name, "工号:", dx.uid, "降级后职位:", dx.job, dx.grade, "降级后薪资", dx.salary(), '(', xz_1-dx.salary(), ')', sep='')
else:
print("无此工号!")
def main():
ins = input('1.录入;2.查询;3.升级;4.降级;5.退出:')
while ins != '5':
if ins == '1':
luru()
elif ins == '2':
chaxun()
elif ins == '3':
shengji()
elif ins == '4':
jiangji()
else:
ins = input("请重新输入指令:")
ins = input('1.录入;2.查询;3.升级;4.降级;5.退出:')
main()
查看