一:类即类型

        #在python3中统一了类与类型的概念,类就是类型
        class OldboyStudent:
            school='oldboy'
            def __init__(self, x, y, z): #会在调用类时自动触发
                self.name = x #stu1.name='耗哥'
                self.age = y  #stu1.age=18
                self.sex = z #stu1.sex='male'
            def choose_course(self,x):
                print('%s is choosing course' %self.name)
        stu1=OldboyStudent('耗哥',18,'male')
        # stu1.choose_course(1) #OldboyStudent.choose_course(stu1,1)

        # OldboyStudent.choose_course(stu1,1)

        python中列表应用

        l=[1,2,3] #l=list([1,2,3])
        # print(type(l))
        # l.append(4) #list.append(l,4)
        list.append(l,4)

        print(l)

二:为对象定制自己独有的属性

        class OldboyStudent:
            school='oldboy'
            def __init__(obj, x, y, z): #会在调用类时自动触发
                obj.name = x #stu1.name='耗哥'
                obj.age = y  #stu1.age=18
                obj.sex = z #stu1.sex='male'
            def choose_course(self):
                print('is choosing course')
        #调用类时发生两件事
        #1、创造一个空对象stu1
        #2、自动触发类中__init__功能的执行,将stu1以及调用类括号内的参数一同传入
         stu1=OldboyStudent('耗哥',18,'male') #OldboyStudent.__init__(stu1,'耗哥',18,'male')
        stu2=OldboyStudent('猪哥',17,'male')
        stu3=OldboyStudent('帅翔',19,'female')

        #对象本质也就是一个名称空间而已,对象名称空间是用存放对象

        自己独有的名字/属性,而

        #类中存放的是对象们共有的属性

三:绑定方法

            class OldboyStudent:
                school='oldboy'
                def __init__(self, x, y, z): #会在调用类时自动触发
                    self.name = x #stu1.name='耗哥'
                    self.age = y  #stu1.age=18
                    self.sex = z #stu1.sex='male'
                def choose_course(self,x):
                    print('%s is choosing course' %self.name)
                def func():
                    pass
        # 类名称空间中定义的数据属性和函数属性都是共享给所有对象用的

        # 对象名称空间中定义的只有数据属性,而且时对象所独有的数据属性

       # 类中定义的函数是类的函数属性,类可以使用,但使用的就是一个普通的函数而已,意味着需要完全遵循函数的  参 数 规则,该传几个值就传几个
        # print(OldboyStudent.choose_course)

        # OldboyStudent.choose_course(123)      

        # 类中定义的函数是共享给所有对象的,对象也可以使用,而且是绑定给对象用的,
        #绑定的效果:绑定给谁,就应该由谁来调用,谁来调用就会将谁当作第一个参数自动传入
       # print(id(stu1.choose_course))
        # print(id(stu2.choose_course))
        # print(id(stu3.choose_course))
        # print(id(OldboyStudent.choose_course))
        # print(id(stu1.school))
        # print(id(stu2.school))
        # print(id(stu3.school))

        # print(id(stu1.name),id(stu2.name),id(stu3.name))    

        # 补充:类中定义的函数,类确实可以使用,但其实类定义的函数大多情况下都是绑定给对象用的,所以在类中定义的函数都应该自带一个参数self

四;继承

        1、什么是继承
             继承是一种新建类的方式,新建的类称为子类,被继承的类称为父类
             继承的特性是:子类会遗传父类的属性
             强调:继承是类与类之间的关系
        2、为什么用继承
             继承的好处就是可以减少代码的冗余
        3、如何用继承
               在python中支持一个类同时继承多个父类
               在python3中
               如果一个类没有继承任何类,那默认继承object类
          在python2中:
                如果一个类没有继承任何类,不会继承object类
          新式类
                 但凡继承了object的类以及该类的子类,都是新式类
          经典类
                 没有继承object的类以及该类的子类,都是经典类

           在python3中都是新式类,只有在python2中才区别新式类与经典类


  五:派生

            #派生:子类中新定义的属性,子类在使用时始终以自己的为准
            class OldboyPeople:
                school = 'oldboy'
                def __init__(self,name,age,sex):
                    self.name = name #tea1.name='egon'
                    self.age = age #tea1.age=18
                    self.sex = sex #tea1.sex='male'
            class OldboyStudent(OldboyPeople):
                def choose_course(self):
                    print('%s is choosing course' %self.name)
            class OldboyTeacher(OldboyPeople):
                #            tea1,'egon',18,'male',10
                def __init__(self,name,age,sex,level):
                    # self.name=name
                    # self.age=age
                    # self.sex=sex
                    OldboyPeople.__init__(self,name,age,sex)
                    self.level=level
                def score(self,stu_obj,num):
                    print('%s is scoring' %self.name)
                    stu_obj.score=num
            stu1=OldboyStudent('耗哥',18,'male')
            tea1=OldboyTeacher('egon',18,'male',10)
            #对象查找属性的顺序:对象自己-》对象的类-》父类-》父类。。。
            # print(stu1.school)
            # print(tea1.school)
            # print(stu1.__dict__)
            # print(tea1.__dict__)
            tea1.score(stu1,99)
            print(stu1.__dict__)
            # 在子类派生出的新功能中重用父类功能的方式有两种:
            #1、指名道姓访问某一个类的函数:该方式与继承无关 


     


         

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值