面向对象基础

面向对象概念

           面向对象是一种方法论

对象和实例

         对象   object

                   定义一个类就会得到一个类对象 Object

         实例    instance

                  new className() 创建一个类的实例 instance

对象的实例化

       . 运算符 成员运算符 类的成员或者实例的成员

      a=b+1
        =等式先做右边 先计算右边b+1 然后再把b+1的值赋值给变量a

     实例化和初始化过程
      实例化 __new__
      初始化 __init__
     __new__ 返回值是一个self,把self传给__init__做为第一个参数

     __init__函数的返回值必须为None

       

          

 属性

            

           

属性
实例属性赋值即定义
类字典
实例字典

类对象
类的定义一旦被解释器执行完后就会得到一个类的对象

函数对象
函数定义的代码被解释器执行完后会得到一个函数对象

实例
实例的属性没有的时候会向上找类的属性
通过实例调用方法是一个bound方法,解释器会自动把自身实例对象做为方法的第一个参数self
通过类对象调用方法则不是bound方法,不会给方法传递第一个参数

实例的属性查找顺序

               实例和类的绑定方法

                 

               绑定和非绑定方法

          

 访问控制

           私有成员通过__age 双下划线进行标识
          不管是类对象还是实例对象,都可以通过name.__dict__查看其包含的所有属性,python的对象内存结构是通过字典来存储的
          私有属性只不过是修改了一下对象字典中的key的字符串格式,并没有做到实际的访问隔离

          

         

         保护成员

          

        补丁

              修改或者替换类的成员,而调用的方式并没有发生改变

        属性装饰器

             getter setter deltter

       对象销毁

            引用计数为0时解释器自动调用类的__del__函数

           

继承

        python3中所有类型和所有对象实例的祖先类是object
        object是python3中所有对象的祖先,称为根基类

       

         

 访问数据路径

__new__创建实例方法是在object类中定义的
实例字典中没有的属性再去找类的字典属性,类的属性是所有实例共享的属性
obj.__dict__
class.__dict__

posted @ 2023-03-26 15:35  不懂123  阅读(9)  评论(0编辑  收藏  举报