1. 初识面向对象 面向过程: 一切以事务的发展流程为中心. 面向对象: 一切以对象为中心. 一切皆为对象. 具体的某一个事务就是对象
打比方: 大象进冰箱 步骤: 第一步, 开门, 第二步, 装大象, 第三步, 关门
面向对象:大象, 你进冰箱. 此时主语是大象. 我操纵的是大象. 此时的大象就是对象
2. 类. 对象 类: 就是图纸. 创建对象的第一步. 先画图纸. 先写类. 对象: 对象就是车. 通过图纸造出来的具体的东西. 通过类来创建对象
类与对象的关系: 类是对xxx事物的归类. 写: __init__(self, 参数) 参数一般作为属性设置给对象. 对象就是self, 对属性的封装.
def 方法(self, 参数): 方法. 第一个参数一般是固定的self. 当前类的对象. pass
对象是xx类型的一个具体 创建对象: 类名()
创建类: class 类名:
def __init__(self): # 初始化方法. 又被成为构造方法 self.属性 = 值 self.属性 = 值 self.属性 = 值
def fangfa(self): 方法体(函数体, return)
创建对象: 变量 = 类名() # 实例化 <-> 创建对象
变量.属性 # 访问对象的属性信息 变量.方法() # 访问类中的方法
3. 面向对象和面向过程的对比 如果写一些比较小的程序用面向过程. 程序很复杂. 很庞大建议用面向对象.
4. 面向对象的三大特征 封装: 1. 对属性的封装(__init__()) self.xxx = xxx 2. 对方法和功能的封装
继承 子类自动拥有父类中除了私有内容外的其他所有内容 class Bar(Foo): Bar对Foo进行了扩展 pass
当出现x是一种y的时候. 推荐使用继承关系 python支持多继承. 查找顺序: 先找离他近的.
多态(python原生直接就是多态)
1. 初识面向对象 面向过程: 一切以事务的发展流程为中心. 面向对象: 一切以对象为中心. 一切皆为对象. 具体的某一个事务就是对象
打比方: 大象进冰箱 步骤: 第一步, 开门, 第二步, 装大象, 第三步, 关门
面向对象:大象, 你进冰箱. 此时主语是大象. 我操纵的是大象. 此时的大象就是对象
2. 类. 对象 类: 就是图纸. 创建对象的第一步. 先画图纸. 先写类. 对象: 对象就是车. 通过图纸造出来的具体的东西. 通过类来创建对象
类与对象的关系: 类是对xxx事物的归类. 写: __init__(self, 参数) 参数一般作为属性设置给对象. 对象就是self, 对属性的封装.
def 方法(self, 参数): 方法. 第一个参数一般是固定的self. 当前类的对象. pass
对象是xx类型的一个具体 创建对象: 类名()
创建类: class 类名:
def __init__(self): # 初始化方法. 又被成为构造方法 self.属性 = 值 self.属性 = 值 self.属性 = 值
def fangfa(self): 方法体(函数体, return)
创建对象: 变量 = 类名() # 实例化 <-> 创建对象
变量.属性 # 访问对象的属性信息 变量.方法() # 访问类中的方法
3. 面向对象和面向过程的对比 如果写一些比较小的程序用面向过程. 程序很复杂. 很庞大建议用面向对象.
4. 面向对象的三大特征 封装: 1. 对属性的封装(__init__()) self.xxx = xxx 2. 对方法和功能的封装
继承 子类自动拥有父类中除了私有内容外的其他所有内容 class Bar(Foo): Bar对Foo进行了扩展 pass
当出现x是一种y的时候. 推荐使用继承关系 python支持多继承. 查找顺序: 先找离他近的.
多态(python原生直接就是多态)
1. 成员 在类中你能写的所有内容都是类的成员
2. 变量 1. 实例变量: 昨天写的就是实力变量, 由对象去访问的变量. 2. 类变量. 此时. 这个变量属于类. 但是对象也可以访问.
3. 方法 1. 实例方法: 昨天写的就是实例方法. 使用 对象.方法() 特点: 在声明的时候. 需要给出self, self必须放在第一个位置 在调用的时候. 自动的会把对象传递给形参的self 2. 类方法(@classmethod): 类方法是属于类的. 特点:在声明的时候需要给出一个能够接受类名的参数, cls , 也必须放在参数的第一个 在调用的时候. 自动得把xx对象的类传递给cls 3. 静态方法(@staticmethod): 静态方法也是属于类的. 静态方法就好比. 我们在类中定义了一个函数 静态方法一般和类方法差不多. 使用类名去访问
4. 属性 在方法上添加一个@property. 可以把一个方法变成一个属性. 但是这个属性不可以被赋值 当我们某一个属性必须经过计算才能得到结果的时候.
5. 私有 所有以双下划线开头的方法, 变量都是私有内容. 外界无法访问. 除非你主动暴露这些内容
类与类之间的关系 在我们的世界中事物和事物之间总会有一些联系. 在面向对象中. 类和类之间也可以产生相关的关系 1. 依赖关系 执行某个动作的时候. 需要xxx来帮助你完成这个操作. 此时的关系是最轻的. 随时可以更换另外一个东西来完成此操作
2. 关联关系 在对象里面埋对象 self.girlFriend = girl 1. 一对一关系 你和你的女朋友
self.teach_list = [t1,t2,t3] 2. 一对多关系 一个学校. 一堆老师
类中的关系: 依赖关系是最轻的. 最重的是继承关系. 关联关系是比较微妙的.
self到底是谁? self:谁调用的就是谁. 类型是根据调用方的对象来进行变换的 super:表示的是父类
特殊成员: __init__() # 创建对象的时候初始化操作 __call__() # 对象() __getitem__() # 对象[哈哈] __setitem__() # 对象[哈哈] = 值 __new__() # 创建对象的时候.开辟内存 __enter__() # with 对象 __exit__() #结束with的时候 __hash__() # 可哈希 hash()