• python之路--day19-对象


    1,调用类发生了那些事?(实例化)

      1,首先产生一个空对象

      2,然后自动触发类内部的__init__函数

      3,最后将空对象连同调用类时括号内的参数一起传给__init__函数,为对象定制独有属性

        注意:定义类里面的函数时,这些函数本质上都是为了给对象使用的,函数默认的self参数,就是用来接收对象本身的。

      

    class OldboyStudent:
        school='oldboy'
    
        def __init__(self,name,age,sex):
            self.name=name
            self.age=age
            self.sex=sex
    
        #self=stu1
        def learn(self):
            print('%s is learning' %self.name)
    
        def choose(self,course):
            print('%s is choosing %s' %(self.name,course))
    定义类

    2,调用类时,会产生类的对象,这个对象也称为类的一个实例,调用类的过程也称为类的实例化

    stu1=OldboyStudent('李三胖',18,'male') #OldboyStudent.__init__(stu1,'李三胖',18,'male')

    3,类内部定义的变量是给所有的对象共享的,所有对象调用的类内部变量都是指向的同一个内存地址

    # print(id(stu1.school))
    # print(id(stu2.school))
    # print(id(OldboyStudent.school))

    4,类内部定义的函数,类可以使用,但类来用的时候就是一个普通函数,普通函数有几个参数就需要传几个参数

    # print(OldboyStudent.learn)
    # OldboyStudent.learn(123)

    5,类内部定义的函数,其实是给对象使用的,而且是绑定给对象用,绑定给不同的对象就是不同的绑定方法

    # print(stu1.learn)
    # print(stu2.learn)

     绑定方法的特殊之处在于,谁来调用,就会将谁当做第一个参数自动传入

    # stu1.learn() # OldboyStudent.learn(stu1)
    # stu2.learn() # OldboyStudent.learn(stu2)

    对象属性的操作

      obj . 属性名 =  用来修改或者添加 对象属性

      obj . 属性名  查看对象属性

      del 属性名  删除属性

      对象属性的查找顺序:先找对象自己的名称空间----再找类的名称空间

    一起皆对象:在python3中统一了类和类型的概念,类就是类型

  • 相关阅读:
    hdu1507
    zoj1654
    hdu2444
    poj3692
    hdu1150
    hdu1151
    poj2771
    hdu3829
    hdu4619
    hdu4715
  • 原文地址:https://www.cnblogs.com/guodengjian/p/8798255.html
Copyright © 2020-2023  润新知