|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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)列表中。
所以,这两句代码的主要作用是组织和存储员工对象,以便于后续的查询、升级、降级等操作。
|
|