什么是 OOP?

Python 面向对象编程入门

George Boorman

Curriculum Manager, DataCamp

过程式编程

 

  • 代码是按步骤执行
  • 适合数据分析

楼梯

1 图片来源:https://unsplash.com/@tateisimikito
Python 面向对象编程入门

按序思考

 

一个人在床上、咖啡杯、手提包的图标序列

 

代表多种活动的一组图标

Python 面向对象编程入门

过程式编程

 

  • 代码是按步骤执行
  • 适合数据分析

面向对象编程

 

  • 代码是对象之间的交互
  • 适合构建软件
  • 代码可维护、可复用!
Python 面向对象编程入门

对象

$$\Large{\text{对象 = 数据 + 功能}}$$

一个拿笔记本电脑的人影,代表客户

                                                  状态——对象的_数据_

                                                  行为——对象的_功能_

Python 面向对象编程入门

Python 中的对象

  • Python 中的一切都是对象
对象 类型
5 int
"Hello" str
pd.DataFrame() DataFrame
sum() function
... ...
Python 面向对象编程入门

类是蓝图

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

客户类

Python 面向对象编程入门

类是蓝图

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

客户类分出多个客户对象

Python 面向对象编程入门

Python 中的类

  • 相同类型的 Python 对象行为一致
  • list 是一个类
    • 用逗号分隔的值创建 [1, 2, 3, 4, 5]
    • 共享相同方法,如 .append()
  • type() 查看类
type([1, 2, 3, 4, 5])
<class 'list'>
Python 面向对象编程入门

属性与方法

状态 ↔ 属性
import pandas as pd
df = pd.DataFrame({"a": [1,2,3], 
                   "b": [4,5,6]})

# shape 属性 df.shape
(3, 2)
  • obj. 访问属性和方法
行为 ↔ 方法
import pandas as pd
df = pd.DataFrame({"a": [1,2,3], 
                   "b": [4,5,6]})

# head 方法 df.head()
   a  b
0  1  4
1  2  5
2  3  6
Python 面向对象编程入门

查看属性和方法

# 显示属性和方法
dir([1, 2, 3, 4])
['__add__',
 '__class__',
 '__contains__',
 '__delattr__', 
 ...
 'pop',
 'remove',
 'reverse',
 'sort']
# 显示属性和方法
dir(list)
['__add__',
 '__class__',
 '__contains__',
 '__delattr__', 
 ...
 'pop',
 'remove',
 'reverse',
 'sort']
Python 面向对象编程入门

速查表

术语 定义
用于构建对象的蓝图/模板
对象 _数据_与_功能_的组合;类的一个实例
状态 与对象关联的_数据_,通过属性赋值
行为 对象的_功能_,由方法定义
Python 面向对象编程入门

让我们回顾一下!

Python 面向对象编程入门

Preparing Video For Download...