zoukankan      html  css  js  c++  java
  • 不懂就问

    1009学习的面向对象编程

    1. 对于类有些不理解
      其中 __init__方法到底是什么

    还有self 又是什么

    1. 鸭子类型是什么
      --1011
      组合的练习

    不熟悉

    '''
    选课系统需求:
        1.学生类,老师类, 学生和老师都有课程属性, 每一门课程都是一个对象.
            课程: 课程名字,课程周期,课程价钱
    
        2.学生和老师都有选择课程的功能, 还有打印所有课程的功能.
    '''
    
    
    # 定义父类
    class people:
        def __init__(self,name,age,sex):
            self.name = name
            self.age =age
            self.sex = sex
        '''定义选课的方法'''
        def add_kecheng(self,course_obj):
            '''将选择的课程传入'''
            self.course_list.append(course_obj) # self自己的list列表增加传入的课程
    
        '''得到一个老师学生的对象'''
        def print_all(self): # (传入当前的老师或学生对象)
            '''循环拿到当前对象的课程列表,列表中存放的是一个个的课程对象'''
            for course_obj in self.course_list:  # 对象的课程列表(之前追加的课程)
                '''循环每一个课程对象调用查看课程信息的方法'''
                course_obj.get_info() # 获取到的课程对象直接调用其中的打印方法
    
    # 定义老师类
    class teach(people):
        def __init__(self,name,age,sex):
            super().__init__(name,age,sex)
            # 学生选课的功能
            self.course_list = []
    
    
    # 定义学生类
    class student(people):
        def __init__(self,name,age,sex):
            super().__init__(name,age,sex)
            self.course_list = []
    
    
    # 定义一个课程类
    class Course:
        '''定义课程类的名称周期价格'''
        def __init__(self,course_name,course_period,course_prize):
            self.course_name = course_name
            self.course_period = course_period
            self.course_prize = course_prize
    
        def get_info(self):
            '''打印课程的所有信息'''
            print(f'''
            课程名称:{self.course_name}
            课程周期:{self.course_period}
            课程价格:{self.course_prize}
            ''')
    
    
    # 实例化老师与学生的对象
    tea1 = teach('老师',10,'男性')
    stu1 = student('学生',50,'男性')
    # 实例化课程的对象
    python_obj = Course('python0',6,2.0)
    linux_obj = Course('linux',6,1.0)
    
    # 通过老师学生将两门课程对象添加进teach内
    '''将整个课程信息实例化的对象传入了add_kecheng方法中
    教师类中列表course_list接受课程信息'''
    tea1.add_kecheng(python_obj)
    tea1.add_kecheng(linux_obj)
    
    '''将保存在tea1中的python获取并使用打印方法'''
    # tea1.course_list[0].get_info()
    # python_obj.get_info()
    '''直接调用查看所有的课程'''
    tea1.print_all()
    
    
  • 相关阅读:
    exchart点击事件,空白无值也能点击触发
    两个界面来回切换展示(左下角 有小demo)
    警告滚动展示
    Oracle高级查询之OVER (PARTITION BY ..)
    解决安装office2007后,原来的*.doc文件的图标变成缩略图
    几个常用的文本处理shell 命令:find、grep、sort、uniq、sed、awk
    CentOS 7.3 安装配置 Nginx
    MySQL5.7.17源码编译安装与配置
    CentOS 7 源码安装 MySQL5.7
    Java命令学习系列(一)——Jps
  • 原文地址:https://www.cnblogs.com/fwzzz/p/11644674.html
Copyright © 2011-2022 走看看