一、前言
我们之前学习了变量,列表,字典,循环,类,方法等Python基本的认识,经过这些学习,大家对于每一个模块敲敲代码,写写小功能已经是没有问题了。但是可能有些同学把这些功能结合到一起会有些困难,那我们今天稍作休息,把之前的知识通过一个代码示例来给大家呈现一遍
二、代码示例
class Bussiness(object): # 定义一个公司类
def __init__(self, name, age, salary): # 类的属性有三个,公司员工的姓名,年龄和薪水
self.name = name
self.age = age
self.salary = salary
def employee_info(self): # 打印当前员工的姓名,年龄和薪水
print("This employee name is {}, age is {}, salary is {}".format(self.name, self.age, self.salary))
class Department(Bussiness): # 定义一个部门类,继承上面的公司类
def __init__(self, department_name, name, age, salary): # 部门类除了继承公司类的属性外,自己还有一个部门名称的属性
self.department_name = department_name
self.name = name
self.age = age
self.salary = salary
def employee_info(self): # 重写了公司类的employee_info,这个方法和上面方法的区别在于,这个方法打印了部门的名称
print("This department is {}, employee name is {}, age is {}, salary is {}"
.format(self.department_name, self.name, self.age, self.salary))
if __name__ == '__main__':
# 创建公司和部门两个空队列,用来存储实例化对象
bussiness_employee_list = []
department_employee_list = []
# 创建公司和部门两个字典,公司字典内key为员工姓名,value为列表,存储年龄和薪水;部门字典内key为员工姓名,value为列表,存储部门,年龄和薪水
bussiness_employee_dict = {
'Donnie': [22, 10000],
'John': [26, 13000],
}
department_employee_dict = {
'Jack': ['Develop', 24, 5000],
'Ben': ['Test', 29, 6000],
}
# 用两个for循环,循环遍历公司和部门两个字典,把每一条信息进行实例化
for key, value in bussiness_employee_dict.items():
bussiness_employee_list.append(Bussiness(key, value[0], value[1]))
for key, value in department_employee_dict.items():
department_employee_list.append(Department(value[0], key, value[1], value[2]))
# 两个while循环,分别执行已经实例化对象中的employee_info方法
i = 0
while i < len(bussiness_employee_list):
bussiness_employee_list[i].employee_info()
i += 1
i = 0
while i < len(bussiness_employee_list):
department_employee_list[i].employee_info()
i += 1
三、代码解析
在这里,我们看到了一个新的方法:if name == 'main,这个可以理解为,当你执行当前.py文件时,函数将从if name == '__main__里开始执行,若当前.py被导入到其他模块(这个我们后面会讲),则if name == '__main__里的函数不会执行,那下来我们一个个来看我们的代码是如何执行的,以及如何运用我们之前的知识
1、我们定义了两个类,一个Bussiness类,一个Department类,Department继承Bussiness类,并重写了Bussiness类的employee_info方法
2、下来我们执行代码,首先我们创建两个空列表,用来存储Bussiness和Department两组实例化对象
3、然后创建两个字典,这两个字典分别存储Bussness和Department下的员工,key均为员工的姓名(我们先不管员工重名的情况哈),value为一个列表,存储了员工的年龄和工资(注:Department字典中的value还存了一个部门的名称)
4、接下来我们通过两个for循环,遍历两个字典中的信息,对每一个员工的信息进行实例化,并存储到对应的队列当中
5、最后,我们使用while循环,遍历刚刚存储实例化对象的两个队列,并调用employee_info方法
通过以上步骤,我们就可以打印出公司员工和部门员工的基础信息,在这个代码实例中,我们将变量、循环、列表、字典等知识全部给大家展示了一遍如何运用,也能够帮助大家更好的巩固前面的知识,那么,你学会了么?
四、总结
今天的知识内容较少,主要是通过一个代码示例,来帮助大家回顾之前的知识点,学习到一定阶段,需要放慢自己的脚步
不知道大家发现没有,上面代码有个特点,就是如果要新增员工怎么办,很简单,只需要在对应的字典中按照格式加入员工的信息,然后重新运行代码就好,其他地方不用做任何的改动
但这样仍然不是最优方案,因为在实际应用中,代码实际上是不可更改或者是不可编辑的,所以,更好的方式其实是通过一个配置文件来解决,这样能够不破坏代码,保证代码的完整性,那么这就是我们下一章的内容,如何运用各种配置文件,以及文件的读写