python 面向过程和面向对象

世间万物皆 “对象”,对象 “集合” 即为 “类”

        ——有相同属性的对象的集合聚集成一类,

        将类赋值给一个变量,就是一个对象,即为将类实例化

   类:变量→属性 和 函数→方法

 

面向过程 以解决问题的步骤来划分

面向对象 以功能来划分

面向过程就是自顶向下的编程;

面向对象就是高度实物抽象化

面向过程和面向对象并没有优劣之分,只有适合与不适合。

 

面向过程
    优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
    缺点:没有面向对象易维护、易复用、易扩展
面向对象
    优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
    缺点:性能比面向过程低

面向过程 和 面向对象 编程

  1. 面向过程 编程:函数式编程,C程序,shell等
  2. 面向对象 编程:功能式编程,C++ ,Java,Python等

 

面向对象的基本结构:

面向对象的主要思想是:    封装    继承    多态

类的定义:

类把需要的变量和函数组合成一起,这样包含称为"封装"
class A(object):

类的结构:
class 类名:
成员变量 - 属性
成员函数 - 方法

 

Class 示例:

class People(object):     # 定义类(class),object可以有,也可以没有
    color = 'yellow'      #定义了一个静态属性,成员变量
       
    def think(self):    #定义了一个动态方法,这个方法里一定要有self,还可以带多个属性,成员函数
        self.color = "black"     #如果需要调用类里的属性,就要用到self.color来调用该静态属性
        print("I am a %s" % self.color)    #调用动态方法时的输出
        print("i am a thinker") 

ren = People()      #将类赋值给'ren'这个变量,就是一个对象,即为将类实例化

print(ren)            # 单纯打印这个'ren'变量是一个对象(object),所以将类实例化后的便是对象(object)

print(ren.color)      #输出,'ren'对象的静态属性,

ren.think()         #使用这个类里面的.think()方法



# 输出结果:

<__main__.People object at 0x7f646d144690>    #打印这个方法的信息

yellow           #静态属性的输出结果

I am a black       #这里输出的是 ren.think()         
i am a thinker 
people.py
posted @ 2019-07-09 09:08  _liuxg  阅读(2406)  评论(0编辑  收藏  举报