shuishuishui
1
0.同一种函数或者对象可以返回不同参数类型的解
1.使函数或对象更加灵活,适应性强?
2.可以
3.不知道
4.降低了耦合度
5.不属于
查看答案
12
1
iloveu
class Staff:
def __init__(self,uid,name,job,grade,year):
self.uid = uid
self.name = name
self.job = job
self.grade = grade
self.year = year
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,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)
class Check:
def c_job(self,job):
while True:
if job in 'EMT':
return job
else:
job = input("职位只能填写'E''M''T'中的一个:")
def c_grade(self,job,grade):
if job == 'E':
while True:
if grade <= 10:
return grade
else:
grade = int(input('该职位级别最高为10,请重新录入级别:'))
if job == 'T':
while True:
if grade <= 6:
return grade
else:
grade = int(input('该职位级别最高为6,请重新录入级别:'))
if job == 'M':
while True:
if grade <= 3:
return grade
else:
grade = int(input('该职位级别最高为3,请重新录入级别:'))
def c_promption(self,job,nums,seek_uid):
if job == 'E':
if nums + self.members.grade <= 10:
self.members.grade = nums + self.members.grade
else:
self.members.job = 'T'
self.members.grade = 1
if job == 'T':
if nums + self.members.grade <= 6:
self.members.grade = nums + self.members.grade
else:
self.members.job = 'M'
self.members.grade = 1
if job == 'M':
if nums + self.members.grade <= 3:
self.members.grade = nums + self.members.grade
else:
return print('没有此级别,升级失败!')
return print('升级成功!')
def c_demotion(self,job,nums,seek_uid):
if job == 'M':
if self.members.grade - nums > 0:
self.members.grade = nums + self.members.grade
else:
self.members.job = 'T'
self.members.grade = 6
if job == 'T':
if self.members.grade - nums > 0:
self.members.grade = nums + self.members.grade
else:
self.members.job = 'E'
self.members.grade = 10
if job == 'E':
if self.members.grade - nums > 0:
self.members.grade = nums + self.members.grade
else:
return print('没有此级别,降级失败!')
return print('降级成功!')
class Manage(Staff,Check):
def __init__(self):
self.current_uid = 10000
self.members = {}
def welcome(self):
while True:
ins = int(input('1.录入;2.查询;3.升级;4.降级;5.退出:'))
if ins == 1:
self.enter()
if ins == 2:
self.seek()
if ins == 3:
self.promotion()
if ins == 4:
self.demotion()
if ins == 5:
break
if ins == 6:
for each in self.members:
print(f'{self.members.uid} {self.members.name} '
f'{self.members.job} {self.members.grade} '
f'{self.members.year}')
# 录入功能
def enter(self):
name = input('姓名:')
job = input('职位(E.普通员工;T.组长;M.经理):')
job = self.c_job(job)
grade = int(input('级别:'))
grade = self.c_grade(job,grade)
year = int(input('工龄:'))
member = Staff(self.current_uid,name,job,grade,year)
self.members = member
print(f'录入成功!姓名:{name},工号:{self.current_uid},'
f'薪资:{self.salary(job,grade,year)}')
self.current_uid += 1
#查询功能
def seek(self):
ins = int(input('1.员工查询;2.职位查询:'))
if ins == 1:
seek_uid = int(input('请输入工号:'))
if self.members.get(seek_uid):
member = self.members
else:
return print('该工号不存在!')
print(f'姓名:{member.name}\n职位:{member.job}\n'
f'级别:{member.grade}\n工龄:{member.year}\n'
f'薪资:{self.salary(member.job,member.grade,member.year)}')
if ins == 2:
seek_job = input('职位(E.普通职工;T.组长;M.经理):')
nums = 0
for each in self.members:
if self.members.job == seek_job:
nums += 1
else:
continue
else:
print(f'目前{seek_job}共有{nums}人')
for each in self.members:
if self.members.job == seek_job:
print(f'{self.members.uid} - {self.members.name}')
#升职功能
def promotion(self):
seek_uid = int(input('请输入工号:'))
if self.members.get(seek_uid):
member = self.members
else:
return print('该工号不存在!')
old_salary = self.salary(member.job,member.grade,member.year)
print(f'{member.name},工号:{member.uid},当前职位:{member.job},'
f'当前薪资{old_salary}')
nums = int(input('请输入需要增加的级数:'))
self.c_promption(member.job,nums,seek_uid)
member = self.members
new_salary = self.salary(member.job,member.grade,member.year)
print(f'{member.name},工号:{member.uid},当前职位:{member.job},'
f'当前薪资{new_salary}({new_salary-old_salary})')
#降职功能
def demotion(self):
seek_uid = int(input('请输入工号:'))
if self.members.get(seek_uid):
member = self.members
else:
return print('该工号不存在!')
old_salary = self.salary(member.job,member.grade,member.year)
print(f'{member.name},工号:{member.uid},当前职位:{member.job},'
f'当前薪资{old_salary}')
nums = int(input('请输入需要减少的级数:'))
self.c_demotion(member.job,nums,seek_uid)
member = self.members
new_salary = self.salary(member.job,member.grade,member.year)
print(f'{member.name},工号:{member.uid},当前职位:{member.job},'
f'当前薪资{new_salary}({new_salary-old_salary})')
def main():
m = Manage()
m.welcome()
1
1
啊啊
'''
0. 继承了同一个父类的不同子类的实例对象,其方法和属性可以不同。另外相同的方法在面对不同的对象的时候会有不同的结果
1. 方便
2. 可以
3. 人前说人话,鬼前说鬼话
4. 降低了耦合度
5. 不算
'''
class People:
def __init__(self,name,job,grade,year,uid):
self.name=name
self.job=job
self.grade=grade
self.year=year
self.uid=uid
def get_uid():
return self.uid
def get_name():
return self.name
def get_job():
return self.job
def get_grade():
return self.grade
def get_year():
return self.year
def get_salary():
pass
class Employee(People):
def __init__(self,name,job,grade,year,uid):
super().__init__(name,job,grade,year,uid)
self.salary=3000+500*self.grade+50*self.year
def get_salary(self):
return self.salary
class Teamleader(People):
def __init__(self,name,job,grade,year,uid):
super().__init__(name,job,grade,year,uid)
self.salary=4000+800*self.grade+100*self.year
def get_salary(self):
return self.salary
class Manager(People):
def __init__(self,name,job,grade,year,uid):
super().__init__(name,job,grade,year,uid)
self.salary=5000+1000*(self.grade+self.year)
def get_salary(self):
return self.salary
class Management:
def __init__(self):
self.members=[]
self.uid=[]
def create(self):
name=input('Name: ')
job=input('Job (E. Employee; T. Teampleader; M. Manager): ')
year=int(input('Years: '))
grade=int(input('Grade: '))
uid=len(self.uid)+100
self.uid.append(uid)
if job=='E':
e=Employee(name,job,year,grade,uid)
self.members.append(e)
if job=='T':
t=Teamleader(name,job,year,grade,uid)
self.members.append(t)
if job=='M':
m=Manager(name,job,year,grade,uid)
self.members.append(m)
def check(self):
option=int(input('1. Employee Check; 2. Job Check: '))
if option==1:
uid=int(input('input the employee ID: '))
if uid in self.uid:
m=self.members
print(f'Name: {m.name}')
print(f'Job: {m.job}')
print(f'Grade: {m.grade}')
print(f'Year: {m.year}')
print(f'Name: {m.name}')
print()
else:
print('This ID does not exist')
if option==2:
job=input('Job (E. Employee; T. Teampleader; M. Manager): ')
jobs=
indexes=[]
stop=0
while stop<len(jobs):
i=jobs.index(job,stop)
indexes.append(i)
stop=i+1
count=len(indexes)
print(f'Total: {count}')
for i in indexes:
print('{} -> {}'.format(self.members.uid,self.members.name))
def upgrade(self):
uid=int(input('Input the employee ID: '))
if uid in self.uid:
m=self.members
print(f'{self.name},{self.uid},Current Position: {Job}{Grade}, current salary: {self.salary}')
uplevel=int(input('Input the levels to upgrade: '))
total_level=self.grade+uplevel
if 1<= total_level <= 10:
m.grade+=total_level
m.job='E'
if 10< total_level <= 16:
m.grade=total_level-10
m.job='T'
if 16< total_level <=19:
m.grade=total_level-16
m.job='M'
if total_level>19:
print("Can't level it up")
print('Upgrade successfully')
print(f'{self.name},{self.uid},Current Position: {Job}{Grade}, current salary: {self.salary}')
def downgrade(self):
pass
本帖最后由 explorerboom 于 2024-3-3 23:14 编辑
0.同一运算符、函数或对象在不同的场景下具有不同的作用效果
1.提高代码的灵活性
2.可以
3.一个动物外表像鸭子,走路像鸭子,叫声像鸭子,吃起来也像鸭子,那它就是鸭子
4.降低了耦合度,体现在接口的宽容度上
5.是的,自定义函数的输入变量个数改变了
0.
520
1
0.允许我们在子类中定义与父类同名的方法,从而覆盖父类的方法
1.能够使不同对象在不同场景下有不同的实现效果‘
2.可以被称为多态
3.
0、在多态的情况下,程序可以根据对象的类型调用相应的方法,而不需要知道具体对象的类型
1、简化代码,提高可扩展性
2、是多态
3、
4、增强了内聚
5、是
问答题:
0. 通过同名函数的重写
1. 可以根据不同的参数执行不同的语句
2. 可以
3. 不知道
4. 增强了内聚
5. 不属于
简答题还是比较友好一些
asda