今日作业
注意: 总结完知识点再写作业
1、课堂练习先总结完
2、理解后代码至少敲两遍
3、记录博客, 再写作业!!!
1.什么是组合?为什么要使用组合?
-组合:指的是一个对象中,包含另一个或对个对象
-为了减少代码冗余
2.什么是封装?
-封装:指的是可将一堆属性和方法,封装到对象中
-方便数据的存取
3.什么是访问限制机制?
-凡是在类内部定义的属性或方法
-以__开头的属性或方法名,都会被限制,外部不能“直接访问”该属性的原型
4.访问限制机制的优点?
-优点:将一些重要的数据隐藏起来,不让外部轻易获取
5.什么是property?为什么要使用property?
-property是python内置的装饰器,可以装饰在“类内部的方法”上。
-可以将该方法调用方式由--->对象.方法()--->对象.方法
-为了迷惑使用者,让使用者以为他拿到的是一个属性,其实在内部调用了执行
6.练习题:
'''
- 需求:
- 老师对象:
- 特征:
# 老师信息都为隐私数据,需要私有化
- 1.姓名
- 2.年龄
- 3.性别
- 4.薪资
- 5.等级
- 6.身份证ID
# 课程列表无需私有化
- 7.课程列表
- 技能:
- 1.查看老师信息接口:
- 直接打印即可
- 2.获取老师身份证ID:
- 该方法将 动词设置为 名词的调用方式
- 3.添加课程:
- 该功能为老师课程列表添加课程对象
- 4.删除指定课程
- 该功能删除老师课程列表中的课程对象
- 5.修改课程信息
- 修改老师课程课表中课程的
- 6.打印所有课程
- 打印老师课程列表中所有课程的信息
- 遍历调用所有课程对象中打印课程技能
- 课程对象:
- 特征:
- 1.课程名称
- 2.课程价格
- 3.课程周期
- 技能:
- 1.可以打印课程信息
'''
class Teacher:
def __init__(self, name, age, sex, sal, level, ID):
self.__name = name
self.__age = age
self.__sex = sex
self.__sal = sal
self.__level = level
self.__ID = ID
#老师自己的授课列表
self.course_list = []
#检验接口,获取老师信息
def parse_teacher(self, username, password):
if username == 'tank' and password == '123':
print(f'''
通过验证,获取老师信息
用户名:{self.__name}
用户年龄:{self.__age}
用户性别:{self.__sex}
用户薪资:{self.__sal}
用户等级:{self.__level}
用户ID:{self.__ID}
授课列表:{self.course_list}
''')
else:
print('校验失败,无法查询用户信息!')
#查看ID
@property
def ID(self):
return self.__ID
#添加课程
def add_course(self,course_obj):
self.course_list.append(course_obj)
@property
def course(self):
return self.course_list
#修改课程
@course.setter
def course(self, value):
self.course_list = value
#删除课程
@course.deleter
def course(self):
del self.course_list
#打印所有课程
def tell_all_course(self):
for course_obj in self.course_list:
course_obj.tell_course_info()
#课程对象
class Course:
def __init__(self, course_name, course_price, course_time):
self.course_name = course_name
self.course_price = course_price
self.course_time = course_time
def tell_course_info(self):
print(f'''
=====课程信息如下=====
课程名称:{self.course_name}
课程价格:{self.course_price}
课程时间:{self.course_time}
''')
tea_obj = Teacher('tank', 18, 'male', 20000, 7, 455022423434461187)
tea_obj.parse_teacher('tank', '123')
#创建课程对象
python_obj = Course('python', 66666, 6)
go_obj = Course('go', 77777, 5)
#给老师对象添加课程对象
tea_obj.add_course(python_obj)
tea_obj.add_course(go_obj)
#当前老师所有的课程信息
tea_obj.tell_all_course()
'''
=====课程信息如下=====
课程名称:python
课程价格:66666
课程时间:6
=====课程信息如下=====
课程名称:go
课程价格:77777
课程时间:5
'''
# #查看ID
# print(tea_obj.ID) #455022423434461187
#
# #修改课程
# tea_obj.course_list[0] = 'java'
# print(tea_obj.course_list[0]) #java
#删除课程
# del tea_obj.course_list
# print(tea_obj.course_list)
# #AttributeError: 'Teacher' object has no attribute 'course_list'