1
1
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.
class Data:
def __init__(self, name, job, grade, year, uid):
self.name = name
self.job = job
self.grade = grade
self.year = year
self.uid = uid
class system:
def __init__(self):
self.data = []
self.uid = 10000
def function(self):
while True:
ins = input("\n1.录入;2.查询;3.升级;4.降级;5.退出:")
if ins == '1':
self.input()
if ins == '2':
self.index()
if ins == '3':
self.upgrade()
if ins == '4':
self.downgrade()
if ins == '5':
break
def limit(self):
self.grade = int(input("级别:"))
while True:
if self.job == 'E' and self.grade >10:
self.grade = int(input("该职位最高级别为10,请重新录入级别:"))
elif self.job == 'T' and self.grade >6:
self.grade = int(input("该职位最高级别为6,请重新录入级别:"))
elif self.job == 'M' and self.grade >3:
self.grade = int(input("该职位最高级别为3,请重新录入级别:"))
else:
break
def salary(self, job, grade, year):
if job == 'E':
return 3000 + 500 * grade + 50 * year
if job == 'T':
return 4000 + 800 * grade + 100 * year
if job == 'M':
return 5000 + 1000 * (grade + year)
def input(self):
self.name = input("姓名:")
self.job = input("职位(E.普通员工;T.组长;M.经理):")
self.year = int(input("工龄:"))
self.limit()
self.data.append(Data(self.name, self.job, self.grade, self.year, self.uid))
s = self.salary(self.job, self.grade, self.year)
print(f"录入成功!姓名:{self.name}, 工号{self.uid}, 薪资{s}")
self.uid += 1
def index(self):
ins = input("1.员工查询;2.职位查询:")
if ins == '1':
uid = int(input("请输入工号:"))
counts = 0
for each in self.data:
if each.uid == uid:
print(f"姓名:{each.name}")
print(f"职位:{each.job}")
print(f"级别:{each.grade}")
print(f"工龄:{each.year}")
print(f"薪资:{self.salary(each.job, each.grade, each.year)}")
counts += 1
if counts == 0:
print("该工号不存在!")
if ins == '2':
job = input("职位(E.普通员工;T.组长;M.经理):")
j = []
counts = 0
for each in self.data:
if each.job == job:
j.append(each)
counts += 1
if counts == 0:
if job == 'E':
print("目前公司没有普通员工!")
if job == 'T':
print("目前公司没有组长!")
if job == 'M':
print("目前公司没有经理!")
else:
if job == 'E':
print(f"目前普通员工共有 {counts} 人:")
if job == 'T':
print(f"目前组长共有 {counts} 人:")
if job == 'M':
print(f"目前经理共有 {counts} 人:")
for each in j:
print(f"{each.uid} - {each.name}")
def upgrade(self):
uid = int(input("请输入工号:"))
counts = 0
for each in self.data:
if each.uid == uid:
s_1 = self.salary(each.job, each.grade, each.year)
print(f"{each.name}, 工号:{each.uid}, 当前职位:{each.job}{each.grade}, 当前薪资:{s_1}")
counts += 1
break
if counts == 0:
print("该工号不存在!")
return None
up = int(input("请输入需要增加的级数:"))
if each.job == 'E':
if each.grade + up > 10:
each.job = 'T'
each.grade = 1
else:
each.grade = each.grade + up
print("升级成功")
s_2 = self.salary(each.job, each.grade, each.year)
print(f"{each.name}, 工号:{each.uid}, 升级后职位:{each.job}{each.grade}, 升级后薪资:{s_2}({+s_2-s_1})")
elif each.job == 'T':
if each.grade + up > 6:
each.job = 'M'
each.grade = 1
else:
each.grade = each.grade + up
print("升级成功")
s_2 = self.salary(each.job, each.grade, each.year)
print(f"{each.name}, 工号:{each.uid}, 升级后职位:{each.job}{each.grade}, 升级后薪资:{s_2}({+s_2-s_1})")
elif each.job == 'M':
if each.grade + up > 3:
print("升级失败")
else:
each.grade = each.grade + up
print("升级成功")
s_2 = self.salary(each.job, each.grade, each.year)
print(f"{each.name}, 工号:{each.uid}, 升级后职位:{each.job}{each.grade}, 升级后薪资:{s_2}({+s_2-s_1})")
def downgrade(self):
uid = int(input("请输入工号:"))
counts = 0
for each in self.data:
if each.uid == uid:
s_1 = self.salary(each.job, each.grade, each.year)
print(f"{each.name}, 工号:{each.uid}, 当前职位:{each.job}{each.grade}, 当前薪资:{s_1}")
counts += 1
break
if counts == 0:
print("该工号不存在!")
return None
up = int(input("请输入需要减少的级数:"))
if each.job == 'E':
if each.grade - up <= 0:
print("降级失败")
else:
each.grade = each.grade - up
print("降级成功")
s_2 = self.salary(each.job, each.grade, each.year)
print(f"{each.name}, 工号:{each.uid}, 降级后职位:{each.job}{each.grade}, 降级后薪资:{s_2}({+s_2-s_1})")
elif each.job == 'T':
if each.grade - up <= 0:
each.job = 'E'
each.grade = 10
else:
each.grade = each.grade - up
print("降级成功")
s_2 = self.salary(each.job, each.grade, each.year)
print(f"{each.name}, 工号:{each.uid}, 降级后职位:{each.job}{each.grade}, 降级后薪资:{s_2}({+s_2-s_1})")
elif each.job == 'M':
if each.grade - up <= 0:
each.job = 'T'
each.grade = 6
else:
each.grade = each.grade - up
print("降级成功")
s_2 = self.salary(each.job, each.grade, each.year)
print(f"{each.name}, 工号:{each.uid}, 降级后职位:{each.job}{each.grade}, 降级后薪资:{s_2}({+s_2-s_1})")
def main():
m = system()
m.function()
{:5_106:}
2024.01.20
{:10_277:}
12
0.一个父类方法,多种子类功能。一个函数方法,多种类的功能
1.灵活,有条理
2.yes
3.如果它走起来像鸭子,叫起来像鸭子,那么它就是鸭子
4.
5.no
1
kk
1
完成
同一个运算符、函数、或对象在不同场景下具有不同的作用效果,重写也是实现多态的一种方式
同一个运算符、函数、或对象在不同场景下具有不同的作用效果
可以
不知道
降低了耦合
不属于
支持
0.利用之类可以对父类同名函数的重写机制
1.可以实现一个函数多种用法
2.可以的
3.
4.低耦合
5.不是
1
hi
kkda
0
本帖最后由 萧随风 于 2023-12-28 16:34 编辑
0.
同一个函数,运算符或者对象在不同的场景下有不同的作用效果
1.
提高了代码的灵活性
2.
可以
3.
在这种风格中,一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由当前方法和属性的集合决定
4.
降低了耦合度
5.
属于