简介
程序编程分为面向过程编程(Procedure Oriented)、函数式编程和面向对象编程。
面向过程编程是一种以过程为中心的编程思想。分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。最重要的是模块化的思想方法。
- 特性:模块化 流程化
- 优点:性能比面向对象高, 因为类调用时需要实例化,开销比较大,比较消耗资源;
单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 - 缺点:没有面向对象易维护、易复用、易扩展
函数式编程是种编程方式,它将电脑运算视为函数的计算。函数编程语言最重要的基础是 λ 演算(lambda calculus),而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。主要思想是把运算过程尽量写成一系列嵌套的函数调用。
面向对象是按人们认识客观世界的系统思维方式,把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。相关的面向对象编程语言有C++、Java、Python等。
- 特性:抽象、封装、继承、多态
- 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合 的系统,使系统更加灵活、更加易于维护
- 缺点:性能比面向过程低
一、类和对象
类(Class)是现实或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。是创建实例的模板。
对象(Object)是具有类类型的变量。类和对象是面向对象编程技术中的最基本的概念。是一个一个具体的实例。
类和对象的区别就是鱼和鲤鱼的区别。
类(Class)
class Cat:
# 属性:一般是名词,eg: name, age, gender.....
name = 'name'
kind = 'kind'
# 方法: 一般情况是动词 eg: create, delete, eating, run......
def eat(self):
print('cat like eating fish.....')
对象(Object):对类的实例化(具体化)
class Cat:
fentiao = Cat()
print(Cat) # <class '__main__.Cat'>
print(fentiao) # <__main__.Cat object at 0x00E9FD70>
二、面向对象的三大特性是指:封装、继承和多态
Ⅰ、封装特性
封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。所以,在使用面向对象的封装特性时,需要:
- 将内容封装到某处
- 从某处调用被封装的内容
1). 通过对象直接调用被封装的内容:对象.属性名
2). 通过self间接调用被封装的内容:self.属性名
3). 通过self间接调用被封装的内容:self.方法名()
构造方法__init__与其他普通方法不同的地方在于,当一个对象被创建后,会立即调用构造方法。自动执行构造方法里面的内容。对于面向对象的封装来说,其实就是使用构造方法将内容封装到对象 中,然后通过对象直接或者self间接获取被封装的内容。
class Cat:
def __init__(self, name, kind): # 形参
"""
1. 构造方法,实例化对象时自动执行的方法
2. self实质上是实例化的对象
3. 类方法中, python解释器会自动把对象作为参数传给self
"""
print('正在执行__init__构造方法')
print(