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基础结束 整体的知识体系建立起来了。也就这几样东西吧,数据,数据结构,控制语句,函数,对象
一步挨一步变化过来的,还差模块的引入和异常。应该还欧克吧