zoukankan      html  css  js  c++  java
  • 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中统一了类和类型的概念,类就是类型

  • 相关阅读:
    pytest学习(2)
    pytest学习(1)
    facets学习(1):什么是facets
    window10下部署flask系统(apache和wsgi)
    python tips:列表推导
    python的一致性(1)sorted和len
    THULAC:一个高效的中文词法分析工具包(z'z)
    EAScript 2016的新增语法(1)
    python的property的用法
    python算法:LinkedList(双向线性链表)的实现
  • 原文地址:https://www.cnblogs.com/guodengjian/p/8798255.html
Copyright © 2011-2022 走看看