python----面向对象
1.初识面向对象
1.面向过程:一切以事物的过程为核心,过程是指解决问题的过程,先做什么,后做什么类似于流水线的思维
优点:负责的问题流程化,编写相对简单
缺点:可扩展性差
2.面向对象:一切以对象为中心
具有相同属性和动作的结合体叫对象.面向对象思维,要自己建立对象,自己建立思维
优点:可扩展性强
缺点:编程的复杂度高于面向过程
举个例子: 装大象
面向过程: 1.打开冰箱门 2.装大象 3.关冰箱门
面向对象: 1.造一个会钻冰箱的大象 2.命令大象进冰箱
class 类名:
def __init__(self): # 初始化方法. 又被成为构造方法
self.属性 = 值
self.属性 = 值
self.属性 = 值
def fangfa(self):
方法体(函数体, return)
2.类,对象
类与对象的关系: 类是对事物的总结.抽象的概念.类用来描述对象.
对象是类的实例化的结果.对象能执行哪些方法,都由类来决定.类中定义了什么
对象就拥有什么
__init__(self, 参数) 参数一般作为属性设置给对象. 对象就是self, 对属性的封装. def 方法(self, 参数): 方法. 第一个参数一般是固定的self. 当前类的对象. pass
对象是xx类型的一个具体
创建对象: 类名()
3. 面向对象和面向过程的对比
如果写一些比较小的程序用面向过程的思想
如果程序很复杂.很庞大建议用面向对象的思想写
4. 面向对象的三大特征
封装:
把很多数据封装到⼀个对象中. 把固定功能的代码封装到一个代码块, 函数, 对象, 打包成模块. 这都属于封装的思想. 具体的情况具体分析. 比如. 你写了一个很牛B的函
数. 那这个也可以被称为封装. 在⾯向对象思想中. 是把⼀些看似⽆无关紧要的内容组合到一起统一进行存储和使用. 这就是封装
1.对属性的封装(__init__())
2.对方法和功能的封装
继承:
1.子类自动用友父类中除了私有内容外的其他所有内容
class Bar(Foo): Bar对Foo进行了扩展
pass
多态(python原生直接就是多态)
1.python更多的支持就是鸭子模型