作业

今日作业

注意: 总结完知识点再写作业

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'



posted @ 2019-11-27 20:16  alen_zhan  阅读(101)  评论(0编辑  收藏  举报
返回顶部