Trong Python, mọi thứ đều là đối tượng. Số, chuỗi, DataFrame, thậm chí cả hàm đều là đối tượng. Cụ thể, mọi thứ bạn làm việc trong Python đều có một lớp, một bản thiết kế đi kèm ẩn phía sau.
Cách tiếp cận hướng đối tượng hữu ích nhất khi mã của bạn liên quan đến các tương tác phức tạp giữa nhiều đối tượng. Trong mã sản xuất thực tế, các lớp có thể có hàng chục thuộc tính và phương thức với logic phức tạp, nhưng cấu trúc nền tảng vẫn giống như với lớp đơn giản nhất.
Các lớp giống như bản thiết kế cho đối tượng, phác thảo các hành vi và trạng thái mà mọi đối tượng thuộc một kiểu nhất định có thể có. Ví dụ, nếu bạn nói, "mỗi khách hàng sẽ có số điện thoại và email, và sẽ có thể đặt và hủy đơn hàng", bạn vừa định nghĩa một lớp! Bằng cách này, bạn có thể nói về khách hàng theo một cách thống nhất. Sau đó, một đối tượng Customer cụ thể chỉ là sự hiện thực hóa của lớp này với một giá trị trạng thái cụ thể.
Tìm hiểu các Lớp trong Python
Trong Python, mọi thứ đều là đối tượng. Số, chuỗi, DataFrame, thậm chí cả hàm đều là đối tượng. Cụ thể, mọi thứ bạn làm việc trong Python đều có một lớp, một bản thiết kế đi kèm ẩn phía sau. Sự tồn tại của các giao diện thống nhất này là lý do tại sao bạn có thể dùng, chẳng hạn, bất kỳ DataFrame nào theo cùng một cách.
Bạn có thể gọi type() trên bất kỳ đối tượng Python nào để biết lớp của nó. Ví dụ, lớp của một mảng numpy thực ra được gọi là ndarray (viết tắt của n-dimensional array - mảng n chiều).
import numpy as np
a = np.array([1,2,3,4])print(type(a))Được hỗ trợ bởi
Các lớp kết hợp thông tin về trạng thái và hành vi. Thông tin trạng thái trong Python nằm trong các thuộc tính, còn thông tin hành vi nằm trong các phương thức.
Thuộc tính và Phương thức
Lấy ví dụ một mảng numpy: bạn đã từng sử dụng một số phương thức và thuộc tính của nó rồi!
Chẳng hạn, mọi mảng numpy đều có thuộc tính "shape" mà bạn có thể truy cập bằng cách ghi tên mảng, theo sau là dấu chấm và shape.
Cách tiếp cận hướng đối tượng hữu ích nhất khi mã của bạn liên quan đến các tương tác phức tạp giữa nhiều đối tượng. Trong mã sản xuất thực tế, các lớp có thể có hàng chục thuộc tính và phương thức với logic phức tạp, nhưng cấu trúc nền tảng vẫn giống như với lớp đơn giản nhất.
Các lớp giống như bản thiết kế cho đối tượng, phác thảo các hành vi và trạng thái mà mọi đối tượng thuộc một kiểu nhất định có thể có. Ví dụ, nếu bạn nói, "mỗi khách hàng sẽ có số điện thoại và email, và sẽ có thể đặt và hủy đơn hàng", bạn vừa định nghĩa một lớp! Bằng cách này, bạn có thể nói về khách hàng theo một cách thống nhất. Sau đó, một đối tượng Customer cụ thể chỉ là sự hiện thực hóa của lớp này với một giá trị trạng thái cụ thể.
Tìm hiểu các Lớp trong Python
Trong Python, mọi thứ đều là đối tượng. Số, chuỗi, DataFrame, thậm chí cả hàm đều là đối tượng. Cụ thể, mọi thứ bạn làm việc trong Python đều có một lớp, một bản thiết kế đi kèm ẩn phía sau. Sự tồn tại của các giao diện thống nhất này là lý do tại sao bạn có thể dùng, chẳng hạn, bất kỳ DataFrame nào theo cùng một cách.
Bạn có thể gọi
type()trên bất kỳ đối tượng Python nào để biết lớp của nó. Ví dụ, lớp của một mảngnumpythực ra được gọi làndarray(viết tắt của n-dimensional array - mảng n chiều).Các lớp kết hợp thông tin về trạng thái và hành vi. Thông tin trạng thái trong Python nằm trong các thuộc tính, còn thông tin hành vi nằm trong các phương thức.
Thuộc tính và Phương thức
Lấy ví dụ một mảng
numpy: bạn đã từng sử dụng một số phương thức và thuộc tính của nó rồi!Chẳng hạn, mọi mảng
numpyđều có thuộc tính "shape" mà bạn có thể truy cập bằng cách ghi tên mảng, theo sau là dấu chấm và shape.Trạng thái <--> Thuộc tính
Nó cũng có các phương thức như
maxvàreshapemà bạn cũng truy cập qua dấu chấm.Hành vi <--> Phương thức
Tạo Class đầu tiên của bạn
Trong ví dụ này, bạn sẽ tạo một lớp rỗng
Employee. Sau đó, bạn sẽ tạo một đối tượngempcủa lớpEmployeebằng cách gọiEmployee().Hãy thử in thuộc tính
.namecủa đối tượngemptrong bảng điều khiển. Chuyện gì xảy ra?Tự bạn thử nhé.
Để tìm hiểu thêm về lập trình hướng đối tượng trong Python, vui lòng xem video này từ khóa học Object-Oriented Programming in Python của chúng tôi.
Nội dung này được trích từ khóa học Object-Oriented Programming in Python của DataCamp do Aliaksandra Yarosh biên soạn.
Hãy xem Hướng dẫn Lập trình Hướng đối tượng (OOP) trong Python của DataCamp.