enum, NamedTuple và TypedDict: chọn kiểu dữ liệu cho đúng việc
Trạng thái nên là enum, bản ghi bất biến nên là NamedTuple, còn dữ liệu vốn là dict thì giữ nguyên với TypedDict. Bài viết chỉ ra khi nào dùng cái nào và khác dataclass ở đâu.
Trạng thái nên là enum, bản ghi bất biến nên là NamedTuple, còn dữ liệu vốn là dict thì giữ nguyên với TypedDict. Bài viết chỉ ra khi nào dùng cái nào và khác dataclass ở đâu.
Ghép đường dẫn bằng chuỗi là nguồn lỗi bất tận: thiếu dấu gạch chéo, thừa dấu gạch chéo, cắt đuôi file sai. pathlib coi đường dẫn là đối tượng, và mọi thao tác quen thuộc chỉ còn một dòng.
Mỗi lần bạn viết for x in danh_sach, Python đang dùng iterator ở bên dưới. Nắm được cơ chế này mở ra cả một thư viện công cụ rất mạnh: itertools.
Iterable và it…
Viết một class chỉ để chứa dữ liệu thường tốn rất nhiều dòng lặp lại. Từ Python 3.7, dataclass sinh sẵn những phần đó cho bạn.
Trước và sau
# Cách truyền thống…
Bạn đã dùng with open(…) để đọc file. Cơ chế đứng sau nó gọi là context manager — và bạn hoàn toàn có thể tự viết một cái.
Vì sao cần with?
# Cách dễ quên đón…
Khi cần tìm một mẫu chuỗi phức tạp — email, số điện thoại, mã đơn hàng — vòng lặp và if sẽ rất dài dòng. Regex (biểu thức chính quy) giải quyết việc đó trong mộ…
Khi chương trình lớn dần, bạn không thể viết mọi thứ trong một khối code khổng lồ. Hàm và module giúp bạn tổ chức, tái sử dụng và bảo trì code hiệu quả. Định ng…
Cấu trúc điều khiển cho phép chương trình “ra quyết định” và “lặp lại công việc”. Đây là bước biến những dòng lệnh tuần tự thành logic thực sự. Câu lệnh điều ki…
Biến và kiểu dữ liệu là nền tảng của mọi chương trình. Trong Python, làm việc với chúng cực kỳ đơn giản — nhưng hiểu đúng bản chất sẽ giúp bạn tránh nhiều lỗi v…