Lập trình hướng đối tượng Python và nguyên lý

Lập trình hướng đối tượng Python là một kỹ thuật hỗ trợ và cho phép các lập trình viên làm việc một cách trực tiếp với các đối tượng mà họ định nghĩa lên. Python là một ngôn ngữ lập trình khá mạnh giúp tạo ra và sử dụng đối tượng vô cùng dễ dàng. Bài viết sau đây sẽ giúp bạn hiểu hơn các khái niệm trong lập trình hướng đối tượng.

Khái quát về OOP trong Python:

Python cho phép chương trình theo các mô hình như: lập trình hướng thủ tục, lập trình hàm, lập trình hướng đối tượng. Trong đó, một trong những mô hình phổ biến và được sử dụng rộng rãi nhất là lập trình hướng đối tượng

Trong Python, OOP là một kĩ thuật lập trình cho phép tạo ra các đối tượng để trừu tượng hóa 1 đối tượng thực tế (đưa các đối tượng trong thực tế vào trong code). Từ đó, OOP cho phép lập trình viên tương tác với các đối tượng này.

Khái quát về OOP trong Python

Một đối tượng bao gồm: thuộc tính (attributes) và phương thức (methods).

+ Thuộc tính (attributes): là những thông tin, đặc điểm của đối tượng.

+ Phương thức (methods): những thao tác, hành động mà đối tượng đó có thể thực hiện. 

Lớp (Class) và Đối tượng (Object):

Class và Object là hai khái niệm cơ bản trong lập trình hướng đối tượng.

Đối tượng (Object): là một thực thể của 1 lớp nào đó, được tạo ra từ lớp đó

Ví dụ đối tượng là một xe ô tô (tên hãng, màu sắc, loại nguyên liệu, hành vi đi, dừng, đỗ, nổ máy…)

Lớp (Class): là một kiểu dữ liệu đặc biệt do người dùng định nghĩa, tập hợp nhiều thuộc tính đặc trưng cho mọi đối tượng được tạo ra từ lớp đó. Ví dụ con mèo (tên, màu sắc, có đuôi, tai, chân, …)

Phân biệt giữa Đối tượng (Object) và Lớp (Class):

Class và Object là hai khái niệm cơ bản trong lập trình hướng đối tượng

– Đối tượng (Object): có trạng thái và hành vi.

– Lớp (Class): có thể được định nghĩa như là một template mô tả trạng thái và hành vi mà loại đối tượng của lớp hỗ trợ. Một đối tượng là một thực thể (instance) của một lớp

Các nguyên lý của lập trình hướng đối tượng Python

Khái niệm về OOP trong Python tuân theo một số nguyên lý cơ bản sau đây: 

Thứ nhất là tính kế thừa, nó cho phép một lớp (class) có thể kế thừa các thuộc tính và phương thức từ các lớp khác đã được định nghĩa.

Thứ hai, tính đóng gói là quy tắc yêu cầu trạng thái bên trong của một đối tượng được bảo vệ và tránh truy cập được từ code bên ngoài.

Cuối cùng là tính đa hình, hai hoặc nhiều lớp có những phương thức giống nhau nhưng có thể thực thi theo những cách thức khác nhau.

Các tính chất của OOP

Phương thức (Method):

Là các hàm được định nghĩa bên trong phần thân của một lớp. Chúng được sử dụng để xác định các hành vi của một đối tượng. Một phương thức trong Python không phải là duy nhất cho các thể hiện của lớp. Phương thức có thể có ở bất kỳ đối tượng nào.

Kế thừa (Inheritance)

Trong lập trình hướng đối tượng, tính kế thừa là khía cạnh quan trọng cho phép một lớp (class) có thể kế thừa các thuộc tính và phương thức từ các lớp khác đã được định nghĩa. Lớp đã có gọi là lớp cha, lớp mới phát sinh gọi là lớp con. Lớp con kế thừa tất cả thành phần của lớp cha, có thể mở rộng các thành phần kế thừa và bổ sung thêm các thành phần mới.

Chúng ta có thể tạo một lớp sử dụng tất cả các thuộc tính và hành vi của lớp khác bằng cách sử dụng tính kế thừa. Kế thừa giúp tái sử dụng lại mã nguồn.

Đa hình (Polymorphism)

Tính đa hình là khái niệm mà hai hoặc nhiều lớp có những phương thức giống nhau nhưng có thể thực thi theo những cách thức khác nhau. Bằng đa hình, có thể hiểu rằng một nhiệm vụ có thể được thực hiện theo những cách khác nhau. 

Đóng gói (Encapsulation)

Đóng gói cũng là một khía cạnh quan trọng của lập trình hướng đối tượng. Nó được sử dụng để hạn chế quyền truy cập vào các phương thức và biến. Điều này ngăn chặn dữ liệu bị sửa đổi trực tiếp, được gọi là đóng gói. Trong Python, chúng ta biểu thị thuộc tính private này bằng cách sử dụng dấu gạch dưới làm tiền tố: “_” hoặc “__“.

Trừu tượng (Abstraction)

Trừu tượng được sử dụng để ẩn chi tiết nội bộ và chỉ hiển thị các chức năng. Đặt tên cho những thứ để cái tên nắm bắt cốt lõi của những gì một chức năng hoặc toàn bộ chương trình làm là trừu tượng hóa một cái gì đó.

Trên đây là thông tin cơ bản nhất dành cho ai quan tâm đến lập trình hướng đối tượng Python. Hy vọng, bài viết sẽ cung cấp cho bạn những thông tin hữu ích.

Tìm hiểu thêm:

Đọc thêm về quy trình tuyển dụng tại đây.

https://d1iv5z3ivlqga1.cloudfront.net/wp-content/uploads/2021/04/29235048/1_QAG9RXQyyMAY7i9OYo84FA.png
Got It Vietnam
February 05, 2021
Share this post to:
Tags:
0 Comments
Inline Feedbacks
View all comments
Các bài viết liên quan
Các bước tạo một thư viện Python

Các bước tạo một thư viện Python

Tác giả: Minh (Software Engineer | CAI) Trong Tech Blog số này, Got It sẽ cùng bạn tìm hiểu về 6 bước để tạo và phân phối một thư viện Python. Cụ thể, chúng ta sẽ viết một CLI command tương tự cowsay cùng với một function để các package khác có thể import và […]
Sử dụng pre-commit để thực thi PEP8 chỉ trong 3 bước

Sử dụng pre-commit để thực thi PEP8 chỉ trong 3 bước

Tác giả: Kiên (Software Engineer | CAI) Đảm bảo code tuân thủ đầy đủ các quy tắc được đề xuất trong PEP8 là một điều vô cùng quan trọng, đặc biệt là trong làm việc nhóm, khi mà yếu tố dễ đọc, dễ hiểu, và dễ bảo trì code được đặt lên hàng đầu. Dẫu […]
Hướng dẫn cách triển khai và debug code Python trên Docker

Hướng dẫn cách triển khai và debug code Python trên Docker

Tác giả: Kiên (Software Engineer | CAI) Bạn đã bao giờ mất hàng tiếng đồng hồ, thậm chí vài ngày để cài đặt một số thư viện cần thiết cho việc chạy một project trên máy tính của mình chưa? Nếu có thì đây là bài viết dành cho bạn. Thông thường, khi bạn tham […]
Readable Code

Readable Code

Tác giả: Minh (Software Engineer, CAI) & Hương (TPM, CAI) Mục lục1. Readable code là gì?2. Làm thế nào để viết code dễ đọc?2.1. Style guide2.2. Viết function nhỏ, tập trung vào một tính năng2.3. Đặt tên hợp lý2.3.1. Dùng các tiền tố thích hợp để phân loại function2.3.2. Hạn chế thêm thông tin về […]
Tìm hiểu Tuple trong Python, phân biệt Tuple và List

Tìm hiểu Tuple trong Python, phân biệt Tuple và List

Ở bài viết này, chúng ta sẽ cùng đi tìm hiểu về Tuple trong Python, cách sử dụng chúng như thế nào, và sự khác biệt giữa Tuple và List là gì? Tất cả những nội dung trong bài đọc sẽ đều có ví dụ minh hoạ cụ thể, hi vọng các bạn đọc có […]
Anaconda là gì? Tìm hiểu nền tảng Khoa học dữ liệu phổ biến nhất

Anaconda là gì? Tìm hiểu nền tảng Khoa học dữ liệu phổ biến nhất

Để có thể tạo nên một ứng dụng của riêng mình, điều quan trọng nhất đó là phải thiết lập môi trường làm việc đúng cách. Vì vậy, bạn cần các công cụ để xử lý dữ liệu, xây dựng các mô hình và biểu diễn trên đồ thị. Việc sử dụng nhiều công cụ […]