Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Python Object Oriented Programming (OOP): Beginner to Pro

Lập trình hướng đối tượng Python (OOP): Từ Cơ bản đến Chuyên gia

Lập trình hướng đối tượng Python (OOP): Từ Cơ bản đến Chuyên gia

Nền tảng OOP chuyên sâu từ con số 0

4.6
(761 đánh giá)
6,004 học viên
Giảng viên
Andy Bek
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 349.000đ -86%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
27.0 giờ video
231 bài giảng
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 30/05/2026

Bạn sẽ học được gì

Học lập trình hướng đối tượng Python từ đầu với bài giảng chi tiết và hoạt động thực hành
Thực hiện 16 bài tập dự án chi tiết để áp dụng kiến thức vào thực tế
Viết lớp của riêng bạn với hành vi, biểu diễn và quan hệ tùy chỉnh
Hiểu về kế thừa và đa kế thừa, bao gồm các phương pháp hay nhất và trường hợp sử dụng lý tưởng
Hiểu các cấu trúc ngôn ngữ hiện đại như dataclasses, enumerations, slots và hơn thế nữa
Thành thạo phong cách Pythonic khi làm việc với các kiểu dữ liệu, hàm dựng sẵn và các dẫn xuất của chúng
Hiểu sâu các phần khó hơn bao gồm descriptors, abstract base classes và metaprogramming
Tạo phiên bản cấu trúc dữ liệu của riêng bạn với hành vi đặc biệt, ví dụ: danh sách tự sắp xếp hoặc từ điển không bao giờ gây ra KeyError
Làm việc hiệu quả với ngoại lệ và định nghĩa hệ thống phân cấp ngoại lệ riêng của bạn

Yêu cầu

Một máy tính (Windows/Mac/Linux). Chỉ cần vậy!
Hãy sẵn sàng viết hàng nghìn dòng mã Python
Không yêu cầu kiến thức trước về Python

Đối tượng phù hợp

Dành cho tất cả mọi người quan tâm đến việc học và thành thạo Python hướng đối tượng từ đầu
Người học đã có một số kinh nghiệm Python muốn nâng cao kỹ năng lên cấp độ tiếp theo
Nhà phát triển Python muốn hiểu sâu hơn

Nội dung khóa học

15 phần • 231 bài giảng
1 Giới thiệu
2 Tất cả tài nguyên khóa học
1 Giới thiệu phần
2 PEP8
3 Lớp đầu tiên của chúng ta
4 Trạng thái lớp
5 Phương thức và hành vi
6 Thuộc tính đối tượng (Instance Attributes)
7 Cách khác: getattr() và setattr()
8 Xem lại self
9 Thử thách kỹ năng #1
10 Lời giải
11 Phương thức lớp và phương thức tĩnh
12 BỔ SUNG: Một cú pháp thay thế
13 Dunder Dict
14 __dict__ của lớp so với __dict__ của đối tượng
15 BỔ SUNG: Cẩn thận với đối tượng có thể thay đổi (Mutables)
16 Kiểm soát truy cập
17 Chuỗi tài liệu (Docstrings)
18 Thử thách kỹ năng #2
19 Lời giải
20 Lưu ý nhanh
21 Tài nguyên phần
1 Giới thiệu phần
2 Hãy thêm __repr__
3 __repr__ so với __str__
4 __format__
5 So sánh đối tượng (Object Equality)
6 BỔ SUNG: So sánh không bằng
7 Băm (Hashing) và khả năng thay đổi (Mutability)
8 Sách có thể băm (Hashable Book)
9 BỔ SUNG: Lưu ý về băm
10 Thử thách kỹ năng #3
11 Lời giải
12 Các phép so sánh nâng cao khác
13 Một cách tốt hơn
14 Giá trị chân lý (Truthiness)
15 BỔ SUNG: Kiểm tra giá trị chân lý thông qua __len__
16 Lớp chứa (Container Classes)
17 Cách thêm phần tử kiểu Pythonic
18 Ma thuật __getitem__
19 Định nghĩa các phương thức ma thuật của riêng chúng ta
20 Thử thách kỹ năng #4
21 Lời giải
22 Tài nguyên phần
1 Giới thiệu phần
2 Khách hàng trung thành
3 Luôn bắt đầu đơn giản
4 Tái cấu trúc
5 Thuộc tính riêng tư và bị xáo trộn (Private And Mangled Attributes)
6 Các thay đổi phá vỡ (Breaking Changes)
7 Properties tồn tại trong lớp
8 Thử thách kỹ năng #5
9 Lời giải
10 Cú pháp decorator
11 BỔ SUNG: Ôn tập về decorator
12 Thuộc tính chỉ đọc hoặc chỉ ghi
13 Thuộc tính được quản lý (Managed Attributes)
14 BỔ SUNG: Lưu trữ đánh giá trung bình
15 Xóa thuộc tính (Deleting Properties)
16 Chuỗi tài liệu cho Property
17 Thử thách kỹ năng #6
18 Lời giải
19 Tài nguyên phần
1 Giới thiệu phần
2 Kế thừa
3 Kế thừa dùng để làm gì?
4 Tất cả các lớp đều kế thừa từ object
5 Thứ tự phân giải phương thức (Method Resolution Order)
6 Ghi đè trong lớp con (Subclass Overrides)
7 Ủy quyền lớp cha tốt hơn: super()
8 __init__ của lớp con
9 Thử thách kỹ năng #7
10 Lời giải
11 Kế thừa Properties
12 Mở rộng các lớp dựng sẵn (Extending Built-ins)
13 Một ví dụ khác
14 Cẩn thận với các cạm bẫy
15 Vượt ra ngoài kế thừa
16 Thử thách kỹ năng #8
17 Lời giải
18 Tài nguyên phần
1 Giới thiệu phần
2 Ôn tập lưu trữ dữ liệu đối tượng
3 Slots
4 Cư dân của lớp (Class Residents)
5 BỔ SUNG: Minh họa lợi thế về bộ nhớ
6 Kế thừa Slots
7 Điều cần tránh
8 Chúng ta có nên luôn dùng Slots không?
9 Thử thách kỹ năng #9
10 Lời giải
11 Tài nguyên phần
1 Giới thiệu phần
2 Lý do
3 Một lựa chọn thay thế: namedtuple
4 BỔ SUNG: Một điểm nhanh về tính bất biến (Immutability)
5 BỔ SUNG: NamedTuple có kiểu (Typed NamedTuple)
6 Dataclasses
7 Đầy đủ tính năng (Batteries Included)
8 Gợi ý kiểu (Type Hints)
9 Tùy chỉnh trường (Customizing Fields)
10 BỔ SUNG: Tùy chỉnh nâng cao
11 Tính bất biến
12 Kế thừa
13 Tại sao không chỉ dùng Namedtuples?
14 Thử thách kỹ năng #10
15 Lời giải
16 Tài nguyên phần
1 Giới thiệu phần
2 Ôn tập chuỗi tìm kiếm thuộc tính
3 Giao thức Descriptor
4 Sử dụng một Descriptor
5 Lưu trữ Descriptor
6 Tốt hơn nữa: Lưu trữ trong đối tượng (Instance Storage)
7 Sử dụng __set_name__
8 Hoàn thiện các chi tiết còn lại
9 Bộ mô tả không phải dữ liệu (Non-Data Descriptors)
10 Chẳng phải Properties tốt hơn sao?
11 BỔ SUNG: Tương tự như thế nào?
12 Thử thách kỹ năng #11
13 Lời giải
14 Lời giải đã tái cấu trúc
15 Tài nguyên phần
1 Giới thiệu phần
2 Mục đích là gì?
3 Liệt kê (Enumerations)
4 Các thành viên (Members)
5 Bí danh so với thành viên chính (Aliases vs Masters)
6 Tính duy nhất (Uniqueness)
7 BỔ SUNG: Cú pháp hàm (Functional Syntax)
8 Giá trị tự động (Automatic Values)
9 Tùy chỉnh giá trị tiếp theo
10 Khả năng mở rộng (Extensibility)
11 Cờ (Flags)
12 Mặt nạ bit (Bitmasks)
13 BỔ SUNG: Phép toán bitwise hoạt động như thế nào
14 Thử thách kỹ năng #12
15 Lời giải
16 Tài nguyên phần
1 Giới thiệu phần
2 Đối tượng ngoại lệ
3 Xử lý (Handling)
4 Đưa ra ngoại lệ (Raising)
5 EAFP (Dễ hơn xin lỗi hơn là xin phép)
6 SyntaxError là gì vậy?
7 Hệ thống phân cấp ngoại lệ (Exception Hierarchy)
8 Mệnh đề Else
9 Mệnh đề Finally
10 Lồng ghép và gộp nhóm (Nesting And Bundling)
11 Tự tạo ngoại lệ của riêng chúng ta
12 Thử thách kỹ năng #13
13 Lời giải
14 Tài nguyên phần
1 Giới thiệu phần
2 Python được gõ kiểu động (Dynamically Typed)
3 Duck Typing
4 Giao thức (Protocols)
5 Tạo một chuỗi (Sequence)
6 ZooFavorites
7 Cắt lát (Slicing) kiểu Pythonic
8 BỔ SUNG: Từ vòng lặp đến đối tượng có thể lặp và bộ lặp
9 BỔ SUNG: Giao thức bộ lặp (Iterator Protocol)
10 BỔ SUNG: Duck Typing cực đoan
11 Thử thách kỹ năng #14
12 Lời giải
13 Tài nguyên phần
1 Giới thiệu phần
2 Duck Typing có thể là đủ
3 Ôn tập kiểm tra kiểu
4 Lớp cơ sở trừu tượng
5 PHẦN THÊM: Khi Nào Nên Tự Tạo ABC?
6 Các ABC Trong Thư Viện Chuẩn
7 Nhìn Nhanh Bên Trong
8 Thử Thách Kỹ Năng #15
9 Lời Giải
10 Lời Giải Đã Tái Cấu Trúc
11 Lời Giải Tái Cấu Trúc Lần 2
12 Tài Nguyên Phần Học
1 Giới Thiệu Phần Học
2 Điều Này Có Lý
3 Chia Sẻ Hành Vi
4 Phương Thức __init__() Của Lớp Cha
5 Xem Lại super()
6 Tham Số Biến Động
7 Vấn Đề Hình Thoi
8 Điều Gì Quyết Định __mro__?
9 Có Đáng Không?
10 Mixins
11 Tổ Chức Giao Diện
12 Thử Thách Kỹ Năng #16
13 Lời Giải
14 Tài Nguyên Phần Học
1 Giới Thiệu Phần Học
2 Meta Là Gì?
3 Lớp Cũng Là Đối Tượng
4 type() Như Một Nhà Máy Lớp
5 PHẦN THÊM: Thêm Về Tạo Lớp Động
6 Định Nghĩa Metaclass Của Riêng Chúng Ta
7 Bên Trong Cỗ Máy
8 Minh Họa A: Lớp Không Thể Tạo Đối Tượng Và Singleton
9 Minh Họa B: Bắt Buộc Tên Phương Thức Duy Nhất
10 Phép Màu Sâu Hơn 99%
11 Tài Nguyên Phần Học
1 Chào Mừng
2 Các Kiểu Dữ Liệu
3 Toán Tử Số Học Và Gán Kết Hợp
4 Số Nguyên Và Số Thực
5 Boolean Và Toán Tử So Sánh
6 Chuỗi Ký Tự
7 Phương Thức
8 Vùng Chứa I - Danh Sách
9 Danh Sách So Với Chuỗi
10 Phương Thức Và Hàm Cho Danh Sách
11 Vùng Chứa II - Tuple
12 Vùng Chứa III - Tập Hợp
13 Vùng Chứa IV - Từ Điển
14 Khóa Và Giá Trị Trong Từ Điển
15 Toán Tử Thành Viên
16 Điều Khiển Luồng - if, else, Và elif
17 Giá Trị Chân Lý Của Phi-Boolean
18 Vòng Lặp For
19 Chuỗi Bất Biến range()
20 Vòng Lặp While
21 Break Và Continue
22 Kết Hợp Các Đối Tượng Lặp
23 Biểu Thức Danh Sách
24 Định Nghĩa Hàm
25 Đối Số Hàm - Vị Trí So Với Từ Khóa
26 Hàm Lambda
27 Nhập Mô-đun

Giới thiệu khóa học

Welcome to the best resource online and the only one you need to learn and master object-oriented programming with modern python!

There has never been a better time to learn python. It is consistently ranked in the top 3 most in-demand and most-loved programming languages in the world, with applications in machine learning, web development, data science, automation, game development, and much more. And its growth shows no signs of stopping.

But while there are plenty of resources to learn the basics of python, it is quite difficult to move past those to the intermediate and advanced facets of the language. This course seeks to address that.

Over more than 20 hours of detailed lectures, live coding, and guided projects we will unpack everything that python has to offer, starting from absolute scratch. We will master not only object-oriented python and how to use it, but in the process also gain an understanding of the python data model and the essence of writing pythonic code.

Every five to ten lectures we will stop and practice what we have covered, as we work through a list of detailed requirements and convert that to an object-oriented solution using nothing by zero-dependencies, pure python.

––––– Structure & Curriculum –––––

The curriculum is organized around three parts of increasing target proficiency.

In the first, we will cover the essential foundations of working with classes in python, defining our own types, customizing them using dunders, exposing managed attributes through properties and effectively using inheritance.

· Classes

· Dunders

· Properties

· Inheritance

Having established that core foundation, in the next five sections, we will dive into more advanced topics that effective python developers rely on. These include modern features like dataclasses, enumerations and slots but also more established, pivotal constructs like descriptors and exceptions.

· Slots

· Dataclasses

· Descriptors

· Enumerations

· Exceptions

Then in the final four sections we will take a look under the hood at how python recognizes and works with types. We will explore, practice and implement several patterns including duck typing, dynamic protocols and abstract base classes. Finally, we will look at the internal machinery that produces classes in python, as we turn our attention to class metaprogramming.

· Dynamic Protocols

· Abstract Base Classes

· Multiple Inheritance

· Class Metaprogramming

This course is intended for anyone who is committed to mastering object-oriented programming with python, regardless of prior experience, which is why a full-length bonus introduction to the python programming language is included to get anyone up and running writing pythonic code in no time.

I hope you commit to joining me in this journey as we take your python to the next level. See you inside!

Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Object Oriented Programming
Hiển thị tất cả khoá học Programming
Hiển thị tất cả khoá học Python
Hiển thị tất cả khoá học Software Development
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊