马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
class Employee:
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(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 set_grade(self, grade):
self.grade = grade
def get_year(self):
return self.year
def salary(self):
return 3000 + 500 * self.grade + 50 * self.year
class Teamleader(Employee):
def salary(self):
return 4000 + 800 * self.grade + 100 * self.year
class Manager(Employee):
def salary(self):
return 5000 + 1000 * (self.grade + self.year)
def main():
mems = {}
jobs = {'E':[], 'T':[], 'M':[]}
uid = 10000
MAX_E_GRADE = 10
MAX_T_GRADE = 6
MAX_M_GRADE = 3
while True:
ins = input("\n1.录入;2.查询;3.升级;4.降级;5.退出:")
# 主线功能:录入
if ins == '1':
name = input("姓名:")
job = input("职位(E.普通员工;T.组长;M.经理):")
year = int(input("工龄:"))
grade = int(input("级别:"))
if job == 'E':
while grade > MAX_E_GRADE:
grade = int(input(f"该职位最高级别为{MAX_E_GRADE},请重新录入级别:"))
e = Employee(name, job, grade, year, uid)#类的一个对象
mems[uid] = e
jobs['E'].append(e)
if job == 'T':
while grade > MAX_T_GRADE:
grade = int(input(f"该职位最高级别为{MAX_T_GRADE},请重新录入级别:"))
e = Teamleader(name, job, grade, year, uid)
mems[uid] = e
jobs['T'].append(e)
if job == 'M':
while grade > MAX_M_GRADE:
grade = int(input(f"该职位最高级别为{MAX_M_GRADE},请重新录入级别:"))
e = Manager(name, job, grade, year, uid)
mems[uid] = e
jobs['M'].append(e)
print(f"录入成功!姓名:{name},工号:{uid},薪资:{e.salary()}")
uid += 1
主要是不明白,这两句代码在做什么,是在实现随机生成员工代码吗,可以解释一下吗mems[uid] = e
jobs['T'].append(e)
这两句代码的目的不是随机生成员工代码,而是将创建的员工对象存储到字典和列表中。这样可以方便地对员工进行查找和管理。
- mems[uid] = e:这句代码将员工对象e存储到mems字典中,以uid作为键。mems是一个字典,用于存储所有员工对象,可以方便地通过工号(uid)查找员工。每个员工的uid是唯一的,因此可以确保字典中不会出现重复的键。
- jobs['T'].append(e):这句代码将员工对象e追加到jobs字典中以'T'为键的列表中。jobs字典中的每个键对应一个职位(如 'E'、'T' 和 'M'),键对应的值是一个列表,用于存储对应职位的员工对象。这样的数据结构可以方便地按职位对员工进行分组管理。在这个例子中,jobs['T'].append(e)将e添加到组长(Teamleader)列表中。
所以,这两句代码的主要作用是组织和存储员工对象,以便于后续的查询、升级、降级等操作。
|