2019.04.17 面向对象编程篇207

86.面向对象和面向过程的区别-执行者思维

  类,对象,继承,封装,多态

  次封装不是那个封装,也可以认为是那个封装,只是这个封装加了私有方法

  都是为实例对象做准备,__init__, self

  怎么还有个编程范式咧:面向过程,面向对象,函数式编程

  第一节面向对象和面向过程  什么区别呢?是什么呢造车和开车来举例子吧

  我是不是要去看他的定义啊   这两个是一种思维的东西 .

  

87.对象的进化故事

  函数怎么诞生,对象怎么来,是要实现什么技术而来的

  将不同类型的数据,方法(即函数)放到一起,就是对象

88.类的定义_类和对象的关系

  有什么关系   类是抽象的,是对象的模板,通过模板可以创建出很多相同的对象

  咧如,对象是一个饼干,类就是制作这个饼干的”模具“   类就是将行为和状态打包到一起

89.构建函数_init_

  创建是咧就是调用构造方法,所以参数应该和构造方法一直     

  self不用写,系统会默认的把对象传过来的   构造方法和self都为实例对象服务

  当我创建对象的时候实际上是调用了两个方法:__init__(初始化创建好的对象,初始化是指“给实例赋值”)   __new__(用于创建对象)

  通过类名调用构造函数   self指的是当前创建的对象

90.实例属性_内存分析

  怎么说呢?这个内存分析   不会画  栈  堆   

  有助于我们理解,局部变量吧   那个是属于哪个之类的

91,实例方法-内存分析方法调用过程

  从属关系  就是局部变量嘛   对象存在他就纯在,对象没有它就没有

  

  isinstance 判断这个对象是不是属于这个类

92类对象

  类对象,类属性,类方法,静态方法   后面两个是要通过装饰器的

  type模具类---类----对象   都是对象的意思是,都可以引用地址

93.类属性-内存分析

  属性的值是有变化的,要注意

  因为方法是共享的吗   也会在类对对象的地址中

94.类方法-静态方法-内存分析

  cls特指类对象  还有@classmethod 

  这两个方法都不能访问实例属性,和实例方法,这两个方法有什么用,有什么区别  无

95.__del__()析构方法和垃圾回收机制

  析构函数   实现对象被销魂时所需要的操作

  Python如何实现自动垃圾回收,对象没有被引用时(引用计数0),由垃圾回收器调用__del__方法

  会有一个refc这样的东西计数吧,当创建就加一,消失就减一

  什么意思,创建不做任何操作也会被删除吗     不管了   不重要,   知道有这个机制就好了

96.__call__()方法和可调用对象

  定义了__call__方法的对象,称为“可调用对象”,即该对象可以像函数一样被调用

  都是对象,为什么函数可以,我不可以

  字典,元祖,列表创建都是 a =  ()    然后输出的时候又是恢复成自己的专属括号

97.方法没有重载-方法的动态性

  python中是没有方法的重载的,类体中定义了多个重名的方法,只有最后一个方法有效

  Python是动态语言,一行行的执行,可以动态的修改结构

  这跟动态性有什么关系  方法是对象,函数是对象,一切都是对象。对象引用

98.私有属性

  有什么用    和封装有关系     封装起来,外部是能访问的

  私有属性是这个样存的  _Employee__age   dir(e)    

99.私有方法

  内部是可以按照正常的进行调用就好了

  为什么要有这个还是有点不明白  还是等做练习的慢慢的理解吧

100.@property装饰器-get和set方法

  @progerty就是把方法当成属性使用  getter

  要想设置值的话给用setter

  装饰器是什么,就是装饰嘛,在原有的基础让你更美一点,装饰修饰

  为什么有这个鬼东西,就是我想对属性进行修改是,要判断,而不是随便的修改,也不能

  随便的访问  那就封装成方法呗  我知道属性就好了,就懒得再去记住你的函数名了然后这就诞生了

 

101面向对象的三大特征说明(封装,继承,多态)

  封装:隐藏对象的属性和实现细节,只对外提供必要的方法

  继承:提高代码的重用性

  多态:同一方法调用由于对象不同会产生不同的行为

102 继承

  1. 成员继承:子类继承了父类除构造方法之外的所有成员。

  构造函数中包含调用父类构造函数

  object是所有类的父类 最终都是继承他  所以他的一些方法可以直接用如:__init__,__new__

  必须显示调用父类初始化方法,不然解释器不糊去调用

  私有,只有父类才有,多以不能调用   要用私有的方法去调用

  dir(对象)查询对象拥有的变量名

103 方法的重写

  2. 方法重冐:子类可以重新定义父类中癿方法,这样就会覆盖父类的方法,也称为“重写”

104 object根类 -dir()

  dir(对象)查看所有属性

105  重写__str__()方法

  返回“对象的描述”   就一个内置的方法当我print(对象)时的描述,你觉得不好也可以修改

106.多重继承

  java只有单继承  

  尽量避免使用

107mro()

  打印类的层次结构   C.mro()   继承顺序依次从左往右

108super()获得父类的定义

  通过super()调用父类的方法

  A.say()  也可以调用啊    说明super()就是父类吗

109 多态

  多态是方法的多态,属性没有多态

  多态的存在有必要条件:继承,方法重写

  isinstance是判断是不是这个类的子类

110 特殊方法和运算符重载

  Python的运算符实际上是通过调用对象的特殊方法实现的

  我们可以重写上面的特殊方法,运算符的重载

111特殊属性

  

112对象的深浅拷贝和深拷贝_内存分析

  不晓得要干嘛  

113组合

  与继承相关   也能实现代码的重用    组合让我们把他们组合起来吗

  也能实现一个类拥有另一个类的方法和属性  这和继承不同  继承是子类继承了父类

  这个组合应该没有关系吧   一个是拥有  一个是是

114 设计模式_工厂模式实现

  造东西   造对象吗   分离   一些复杂的项目的时候吧    管理自己的类对象的

  所以是先建一个总的工厂  需要建什么你传给我,我就返回给你

115设计模式_单例模式实现

  只生成一个实例对象,通常要重写new方法和构造方法

五天的Python基础结束  整体的知识体系建立起来了。也就这几样东西吧,数据,数据结构,控制语句,函数,对象

一步挨一步变化过来的,还差模块的引入和异常。应该还欧克吧

原文地址:https://www.cnblogs.com/Py-king/p/10725482.html