OOP là gì?

Lập trình hướng đối tượng trong Python

Alex Yarosh

Content Quality Analyst @ DataCamp

 

Lập trình thủ tục

 

  • Mã như chuỗi các bước
  • Phù hợp cho phân tích dữ liệu
Lập trình hướng đối tượng trong Python

Tư duy theo trình tự

 

biểu tượng người trên giường, sau đó là cà phê, rồi cặp tài liệu

 

nhiều biểu tượng đại diện cho nhiều hoạt động

Lập trình hướng đối tượng trong Python

 

Lập trình thủ tục

 

  • Mã như chuỗi các bước
  • Phù hợp cho phân tích dữ liệu và script

 

Lập trình hướng đối tượng

 

  • Mã là các tương tác giữa đối tượng
  • Phù hợp để xây dựng framework và công cụ
  • Mã dễ bảo trì và tái sử dụng!
Lập trình hướng đối tượng trong Python

Đối tượng như cấu trúc dữ liệu

$$\Large{\text{Đối tượng = trạng thái + hành vi}}$$

bóng người với laptop đại diện cho khách hàng

 

$$\text{\textbf{Đóng gói} - gộp dữ liệu với mã vận hành trên dữ liệu đó}$$

Lập trình hướng đối tượng trong Python

Lớp là bản thiết kế

  • Lớp (class): bản thiết kế cho đối tượng, mô tả trạng thái và hành vi có thể có

lớp khách hàng

Lập trình hướng đối tượng trong Python

Lớp là bản thiết kế

  • Lớp (class): bản thiết kế cho đối tượng, mô tả trạng thái và hành vi có thể có

lớp khách hàng phân nhánh thành các đối tượng khách hàng

Lập trình hướng đối tượng trong Python

Đối tượng trong Python

  • Mọi thứ trong Python đều là đối tượng
  • Mỗi đối tượng có một lớp
  • Dùng type() để xem lớp
import numpy as np
a = np.array([1,2,3,4])
print(type(a))
numpy.ndarray
Đối tượng Lớp
5 int
"Hello" str
pd.DataFrame() DataFrame
np.mean function
... ...
Lập trình hướng đối tượng trong Python

Thuộc tính và phương thức

Trạng thái ↔ thuộc tính
import numpy as np
a = np.array([1,2,3,4])

# thuộc tính shape a.shape
(4,)

 

  • Dùng obj. để truy cập thuộc tính và phương thức
Hành vi ↔ phương thức
import numpy as np
a = np.array([1,2,3,4])

# phương thức reshape a.reshape(2,2)
array([[1, 2],
       [3, 4]])
Lập trình hướng đối tượng trong Python

Đối tượng = thuộc tính + phương thức

  • thuộc tính ↔ biếnobj.my_attribute,

  • phương thức ↔ hàm()obj.my_method().

import numpy as np
a = np.array([1,2,3,4])
dir(a)                # <--- liệt kê mọi thuộc tính và phương thức
['T',
 '__abs__',
 ...
 'trace',
 'transpose',
 'var',
 'view']

Lập trình hướng đối tượng trong Python

Ôn tập!

Lập trình hướng đối tượng trong Python

Preparing Video For Download...