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更多的支持就是鸭子模型

    

原文地址:https://www.cnblogs.com/robertx/p/10133683.html