什么是 OOP?

Python 面向对象编程

Alex Yarosh

Content Quality Analyst @ DataCamp

 

过程式编程

 

  • 代码按步骤顺序执行
  • 非常适合数据分析
Python 面向对象编程

按序思考

 

一个人依次:床、咖啡、公文包的图标

 

多种活动的图标组合

Python 面向对象编程

 

过程式编程

 

  • 代码按步骤顺序执行
  • 适合数据分析与脚本

 

面向对象编程

 

  • 代码由对象交互组成
  • 适合构建框架与工具
  • 代码可维护、可复用!
Python 面向对象编程

对象即数据结构

$$\Large{\text{对象 = 状态 + 行为}}$$

拿着笔记本电脑的顾客剪影

 

$$\text{\textbf{封装}——将数据与操作它的代码打包}$$

Python 面向对象编程

类即蓝图

  • 类(Class):对象的蓝图,定义可能的状态与行为

客户类

Python 面向对象编程

类即蓝图

  • 类(Class):对象的蓝图,定义可能的状态与行为

客户类分出多个客户对象

Python 面向对象编程

Python 中的对象

  • Python 中一切皆对象
  • 每个对象都有一个类
  • type() 查看其类
import numpy as np
a = np.array([1,2,3,4])
print(type(a))
numpy.ndarray
对象
5 int
"Hello" str
pd.DataFrame() DataFrame
np.mean function
... ...
Python 面向对象编程

属性与方法

状态 ↔ 属性
import numpy as np
a = np.array([1,2,3,4])

# shape 属性 a.shape
(4,)

 

  • obj. 访问属性和方法
行为 ↔ 方法
import numpy as np
a = np.array([1,2,3,4])

# reshape 方法 a.reshape(2,2)
array([[1, 2],
       [3, 4]])
Python 面向对象编程

对象 = 属性 + 方法

  • 属性 ↔ 变量obj.my_attribute,

  • 方法 ↔ function()obj.my_method()

import numpy as np
a = np.array([1,2,3,4])
dir(a)                # <--- 列出所有属性和方法
['T',
 '__abs__',
 ...
 'trace',
 'transpose',
 'var',
 'view']

Python 面向对象编程

让我们回顾一下!

Python 面向对象编程

Preparing Video For Download...