|
|
发表于 2024-3-7 04:26:13
|
显示全部楼层
'''
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[self.uid.index(uid)]
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=[x.job for x in self.members]
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[i].uid,self.members[i].name))
def upgrade(self):
uid=int(input('Input the employee ID: '))
if uid in self.uid:
m=self.members[self.uid.index(uid)]
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
|
|